iOS开发中 经常遇到的坑

1.XCode8的项目在xcode7运行报错:


有两种方法解决这个问题:

1.你同事也升级Xcode8,比较推荐这种方式,应该迎接改变。

2.右击XIB或SB文件 -> Open as -> Source Code,删除xml文件中下面一行字段。

2.场景:tabbar左右pan手势切换,其中一个VC是UIPageViewController,这样会导致到pageView的时候不能切换tabbar,如何禁掉pageVC切换呢?

出于UIPageViewController和UItableView等产生手势冲突,我们往往要禁用其翻页手势,代码如下:

self.pageViewController.dataSource = nil;

网络上搜到的重写手势等方法,亲测无效,所以给出这个最简单粗暴的方法。


iOS开发中 经常遇到的坑_第1张图片


iOS开发中 经常遇到的坑_第2张图片


iOS开发中 经常遇到的坑_第3张图片

3.FMDB根据条件查询数据库出现的错误:


iOS开发中 经常遇到的坑_第4张图片

解决办法:


iOS开发中 经常遇到的坑_第5张图片

4.后台数据中出现空格特殊字符:

iOS开发中 经常遇到的坑_第6张图片

问题:注意选项A...我竟然匹配不到这种字符, \r\n\t都不行

方案:中文全角空格...你想说什么...我转了下...\u3000  已解决!

5.浮点型取整问题:


iOS开发中 经常遇到的坑_第7张图片


iOS开发中 经常遇到的坑_第8张图片

6.关于block传值及数据同步总结:

A B C三个界面间C界面修改内容达到AB界面刷新最新的数据保持ABC数据同步:1.C到B可以用block回调传值 2.B界面到A界面只需在B界面Back的时候发出拉取数据并刷新cell即可解决数据不同步现象。


iOS开发中 经常遇到的坑_第9张图片

.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下)

解决方法:


iOS开发中 经常遇到的坑_第10张图片


iOS开发中 经常遇到的坑_第11张图片

9.iOS headerview与tableview之间距离控制?


iOS开发中 经常遇到的坑_第12张图片

10.cell 分割线不全:


iOS开发中 经常遇到的坑_第13张图片

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调整,暨简单又高效)

具体实现代码如下:


iOS开发中 经常遇到的坑_第14张图片

12.监听UITextField的text的变化:

iOS开发中 经常遇到的坑_第15张图片

13.改变cell的选中颜色:


14.旋转图片:


iOS开发中 经常遇到的坑_第16张图片

15.UIView的exclusiveTouch属性:

通过设置[self setExclusiveTouch:YES];

可以达到同一界面上多个控件接受事件时的排他性,从而避免一些问题。


iOS开发中 经常遇到的坑_第17张图片

16.当你使用 UISearchController 在 UITableView 中实现搜索条,在搜索框已经激活并推入新的 VC 的时候会发生搜索框重叠的情况:

解决办法:那就是 definesPresentationContext 这个布尔值。

17.画个曲线如何做呢?如图:


iOS开发中 经常遇到的坑_第18张图片


iOS开发中 经常遇到的坑_第19张图片

18.有效解决刷新单个cell或者section闪一下的问题:


iOS开发中 经常遇到的坑_第20张图片

19.保持imageView 图片不变形:



20.Label后加小图标:


iOS开发中 经常遇到的坑_第21张图片

21.状态栏字体颜色及背景颜色调整:


22.xib加载不同尺寸的屏幕如何控制宽高?


iOS开发中 经常遇到的坑_第22张图片

23.我的位置(强制获取):


iOS开发中 经常遇到的坑_第23张图片

24.比如弹框上放了scrollowView第一次弹出需要裁剪,滑动时需要显示下面的内容:

解决办法:让scrollowView的范围跟父视图同等高就解决了!

25.去除多余cell不管用怎么办:


26.判断页面消失或出现时是push还是pop操作:


iOS开发中 经常遇到的坑_第24张图片

27.运行环境问题:


iOS开发中 经常遇到的坑_第25张图片

上图为2017年最新的视频教程资料,搜索2352149755加我好友私聊我上传视频教程,有什么不懂的也可以来私聊问我。

不定时更新中。

如果你能明白这些视频资料的好差,那么你也算是入行了,底层和中高层就是这一步之差。

你可能感兴趣的:(iOS开发中 经常遇到的坑)