02-02
1. xib文件在OS X 10.9以上Xcode跑过后,再在10.8上的Xcode跑,编译时报错 ibtool failed with exit code 255,如果直接查看xib文件,Xcode会崩溃。解决方法是将xib文件右键open as -> source code,然后搜索
appearanceType="aqua"
删掉,clean一下再run就成功了。原因是xib本质是XML,上边这个属性具体是干嘛的不清楚,不能向上兼容。
02-03
2. 在tableView中判断两个NSIndexPath对象是否相等时,当初脑袋抽了,直接用indexPath1 == indexPath2来判断,结果在iOS7和8的模拟器以及8的真机上都没问题,一致怀疑测试操作的其他问题。最后才发现这种判断方法在iOS7的真机行不通,所以结论是老老实实用
indexPath1.section == indexPath2.section && //不分组的话section不用判断indexPath1.row == indexPath2.row
02-08
3. UINavigationController中返回按钮使用自定义的UIBarButton时,左侧边缘滑动pop手势会不起作用,需要加上
self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;
4. 判断应用是否首次启动确实可以用类似[[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunched"]来判断,但如果用这句话来判断是否需要显示引导页面,就有可能达不到要求了。如果每次更新版本后都需要用户看到引导页,就用应用的版本号作为key吧。
[[NSUserDefaults standardUserDefaults] boolForKey: [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]]
02-14
5. 图片拉伸的方法是
[image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch];
这个顶左底右就是可以拉伸的部分到各边缘的距离。比如常见的聊天气泡(像素100*80),能够拉伸的部分如图,由于是@2x的图,所以写成UIEdgeInsetsMake(18, 16, 15, 24)。保守点的可以再缩小范围,只要不带弯曲部分就好。
02-15
6. 计算NSString在指定宽度或高度下(至少会有一个限制吧)所占frame的方法
1 NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];2 [paragraphStyle setLineBreakMode:NSLineBreakByWordWrapping];3 NSDictionary *attributes = @{NSFontAttributeName: myFont, NSParagraphStyleAttributeName: paragraphStyle};4 5 CGRect textRect = [str boundingRectWithSize:CGSizeMake(width, height)6 options:NSStringDrawingUsesLineFragmentOrigin7 attributes:attributes8 context:nil];