:targetRect.frame inView:self.view permittedArrowDirecti*****:UIPopoverArrowDirectionAny animated:YES]; } (十三)UIColor colorWithRed:green:blue:alpha:这个方法的参数必须用浮点型。 假如使用Xcode自带的取颜色的工具,取到的RGB值分别为:25,25,25, 传给上述方法的参数应为25/255.0或25.0/255。如果用整型25/255,经过取整,小数部分没有了,显示出来的颜色和取到的是不一样的。可以定义一个宏: #define RGB(A,B,C) [UIColor colorWithRed:A/255.0 green:B/255.0 blue:C/255.0 alpha:1.0] 然后用RGB(25,25,25)就可以了
(十四)禁止textField和textView的复制粘贴菜单: -(BOOL)canPerformAction:(SEL)action withSender:(id)sender { if ([UIMenuController sharedMenuController]) { [UIMenuController sharedMenuController].menuVisible = NO; } return NO; }
(十五)时间相关 NSDate需要设置calendar,使用不方便也因为服务器传过来的是time_t格式,所以我在客户端对时间的操作主要用的C语言的方法。 需要注意的是,有的函数不是线程安全的,也就是说在同一个范围内调用多次时,需要调用线程安全的版本,这样的函数有: localtime_r asctime_r ctime_r gmtime_r localtime_r 另外,可以直接给struct tm各成员变量赋值,例如(注意顺序) struct tm tmStart = {second,minute,hour,day, mon, year}; struct tm的各成员是不能的加减的,因为超过了各变量的范围,可能出错,需要先转成time_t,再加减相应的时间
(十六) 如果重载loadView,一定要在这个方法里产生一个self.view。可以调用[super loadView],也可以使用alloc+init。 错误情况举例:loadView 直接调用self.view.alpha = 0.5; 因为self.view为nil,self.view.alpha这句又会调用loadView,也就是loadView不断调用loadView,进入了死循环 (十七)GestureRecognizer相关
1.一个View有GestureRecognizer又有按钮(或其它需要处理action event的控件)时,有时按钮不灵敏,解决办法: -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { CGPoint pt = [touch locationInView:baseView]; UIView *btn = [baseView viewWithTag:TAG_MYBTN]; CGPoint ptInbtn = [baseView convertPoint:pt toView:btn]; return ![btn pointInside:ptInbtn withEvent:nil]; } 2. 上一页 [1] [2] [3] [4] [5] [6] 下一页
|