iOS开发中 经常遇到的坑
1.XCode8的项目在xcode7运行报错:
![](https://img.haomeiwen.com/i5458052/53abc4d0c10a867a.png)
有两种方法解决这个问题:
1.你同事也升级Xcode8,比较推荐这种方式,应该迎接改变。
2.右击XIB或SB文件 -> Open as -> Source Code,删除xml文件中下面一行字段。
![](https://img.haomeiwen.com/i5458052/b87871d6547871fb.png)
2.场景:tabbar左右pan手势切换,其中一个VC是UIPageViewController,这样会导致到pageView的时候不能切换tabbar,如何禁掉pageVC切换呢?
出于UIPageViewController和UItableView等产生手势冲突,我们往往要禁用其翻页手势,代码如下:
self.pageViewController.dataSource = nil;
网络上搜到的重写手势等方法,亲测无效,所以给出这个最简单粗暴的方法。
![](https://img.haomeiwen.com/i5458052/325460f5231606df.png)
![](https://img.haomeiwen.com/i5458052/aeae3aae631ae8de.png)
![](https://img.haomeiwen.com/i5458052/f72e4ef757b2854e.png)
3.FMDB根据条件查询数据库出现的错误:
![](https://img.haomeiwen.com/i5458052/b1272b8b1a9ad00b.png)
解决办法:
![](https://img.haomeiwen.com/i5458052/4addea507fb1b3e2.png)
4.后台数据中出现空格特殊字符:
问题:注意选项A...我竟然匹配不到这种字符, \r\n\t都不行
方案:中文全角空格...你想说什么...我转了下...\u3000 已解决!
5.浮点型取整问题:
![](http://upload-images.jianshu.io/upload_images/5458052-2fa2799934daecd6.png)
![](https://img.haomeiwen.com/i5458052/0fbb5a3d31120170.png)
6.关于block传值及数据同步总结:
A B C三个界面间C界面修改内容达到AB界面刷新最新的数据保持ABC数据同步:1.C到B可以用block回调传值 2.B界面到A界面只需在B界面Back的时候发出拉取数据并刷新cell即可解决数据不同步现象。
![](https://img.haomeiwen.com/i5458052/de3c9d9f4b118e9e.png)
.iOS8调用相机警告:
错误代码:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or
snapshot after screen updates.
IOS8多了一个样式UIModalPresentationOverCurrentContext,
IOS8中 presentViewController时请将控制器的modalPresentationStyle设置为 UIModalPresentationOverCurrentContext,问题解决!!
8.错误点:ENABLE_BITCODE错误设置(mrc下)
解决方法:
![](https://img.haomeiwen.com/i5458052/4c02ec62a2f7fb09.png)
![](https://img.haomeiwen.com/i5458052/a52fa62af1448e98.png)
9.iOS headerview与tableview之间距离控制?
![](https://img.haomeiwen.com/i5458052/d8589cd83c1c41a8.png)
10.cell 分割线不全:
![](https://img.haomeiwen.com/i5458052/36b2286dbdf11fd2.png)
11.iOS7.0以后的UILabel会自动将Text行尾的空白字符全部去除,除了常见的半角空格(\0×20)和制表符(\t)之外,全角空格(\u3000)也被计算在内,甚至连多余的换行符(\r,\n)也被自动去除了。
这一点虽然方便直接将控件赋值和无需取值后再trim,但是太过智能化了之后,往往不能满足一些本可以简单实现的需求。
需求1.使用添加\n方式将上下文本连续空两行,即实现文本的2倍行距。
iOS7.0之前解决办法:在每个换行符后面添加一个空格
即如果要显示为:
aaaaaaa
空行
空行
bbbbbb
使用以下格式进行文本赋值
lbl.text = @"aaaaaaa\n\u0020\n\u0020bbbbbb";
iOS7.0之后需要增加,不增加则无效
lbl.numberOfLines = 0;// 0表示行数不固定
lbl.lineBreakMode=UILineBreakModeWordWrap;//允许换行(可选)
需求2.在所有的UILabel的text后增加一个空格,并使text右对齐。
iOS7.0之前解决办法:直接在text后增加空格即可,即text在赋值前增加空格。
lbl.text = [NSStringstringWithFormat:@"%@%@","aaaaa","\u0020"];
iOS7.0之后需要重写UILabel的drawTextInRect方法,通过缩短默认文本绘制Rect的宽度半个字体宽度来实现。(当然也可以在底部铺一个view调整,暨简单又高效)
具体实现代码如下:
![](https://img.haomeiwen.com/i5458052/0e8f4ed9102faa75.png)
12.监听UITextField的text的变化:
![](https://img.haomeiwen.com/i5458052/7e42fa9d182b1011.png)
13.改变cell的选中颜色:
![](https://img.haomeiwen.com/i5458052/17a2e0c4102d6f55.png)
14.旋转图片:
![](https://img.haomeiwen.com/i5458052/3f952ec1f1a6bd8e.png)
15.UIView的exclusiveTouch属性:
通过设置[self setExclusiveTouch:YES];
可以达到同一界面上多个控件接受事件时的排他性,从而避免一些问题。
![](https://img.haomeiwen.com/i5458052/f871ca8205961ca1.png)
16.当你使用 UISearchController 在 UITableView 中实现搜索条,在搜索框已经激活并推入新的 VC 的时候会发生搜索框重叠的情况:
解决办法:那就是 definesPresentationContext 这个布尔值。
17.画个曲线如何做呢?如图:
![](https://img.haomeiwen.com/i5458052/986471350ba9a95b.png)
![](https://img.haomeiwen.com/i5458052/e5d2a93cbc8fa47c.png)
18.有效解决刷新单个cell或者section闪一下的问题:
![](https://img.haomeiwen.com/i5458052/09b8475b0e8a4c75.png)
19.保持imageView 图片不变形:
![](https://img.haomeiwen.com/i5458052/ec8c1772bc7e3846.png)
![](https://img.haomeiwen.com/i5458052/42d7583e5824cd3d.png)
20.Label后加小图标:
![](https://img.haomeiwen.com/i5458052/717ea2f32e38f4cf.png)
21.状态栏字体颜色及背景颜色调整:
![](https://img.haomeiwen.com/i5458052/bbb65555d257d53e.png)
22.xib加载不同尺寸的屏幕如何控制宽高?
![](https://img.haomeiwen.com/i5458052/165eb6fd27ebc4d6.png)
23.我的位置(强制获取):
![](https://img.haomeiwen.com/i5458052/4858e15a3a3ef47c.png)
24.比如弹框上放了scrollowView第一次弹出需要裁剪,滑动时需要显示下面的内容:
解决办法:让scrollowView的范围跟父视图同等高就解决了!
25.去除多余cell不管用怎么办:
![](https://img.haomeiwen.com/i5458052/39b1af94c94b266a.png)
26.判断页面消失或出现时是push还是pop操作:
![](https://img.haomeiwen.com/i5458052/717e9f3a49881d6a.png)
27.运行环境问题:
![](https://img.haomeiwen.com/i5458052/e78de1e97145379c.png)
![](https://img.haomeiwen.com/i5458052/0b43a61eda5e0e04.png)
上图为2017年最新的视频教程资料,搜索2352149755加我好友私聊我上传视频教程,有什么不懂的也可以来私聊问我。
不定时更新中。
如果你能明白这些视频资料的好差,那么你也算是入行了,底层和中高层就是这一步之差。