2015.02 零碎知识点

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<UIGestureRecognizerDelegate>)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:NSStringDrawingUsesLineFragmentOrigin
7                                      attributes:attributes
8                                         context:nil];

 

posted @ 2015-03-01 20:11  St·主宰  阅读(169)  评论(0编辑  收藏  举报