关于iOS开发的一些坑

来源:互联网 发布:上海知柚公司图片 编辑:程序博客网 时间:2024/06/03 19:15

     最近发现ios7的坑真的很多,做ios7的适配也不容易。

1、auto layout虽然在ios7已经算是完善,但是如果用Aspect Ratio呢?

    如果用Aspect Ratio的话会发现,设置某些比例在一些时候会令程序崩溃,这种崩溃比较随机。我就试过2:1的比例在一些页面崩溃,改成2.002居然就没事。stackoverflow上的解释说ios7 AutoLayout在处理浮点数的时候有问题导致这种bug,ios8以上的版本已经没有问题了。一时间欲哭无泪。

    解决办法还是有的:

1)不用Aspect Ratio。这个是彻底避免这个坑的终极方法。可以产品经理逼着你做适配,这个方案似乎不太可能。只能在可不用Aspect Ratio的时候尽量不用。

2)采用系统给定的比例。经过实践发现,只要是系统自己生成的比例,一般是不会发生崩溃的。例如自己设定的320:40会崩溃,但是系统生成的8:1居然就不崩了。有人说系统默认生成的比例是当前比例,一般都要手动调整啊。我现在的做法是先把高的约束确定下来(例如定height =200),再设置Aspect Ratio,最后把高的约束删掉,这样Aspect Ratio就不用调整了。


2、tableview 的backgroundview不能响应事件

    在ios7中,把一个带button的view放到tableview中的backgroundView,button是没有办法响应的,ios5\6\8\9都不会有这个问题。

解决办法:

    [tableview addsubview:view]就可以解决。


3、frame里面的浮点数运算混乱

    尝试过把label.frame里面的x自加2.75,结果x加了3,运算结果出现了问题。

    解决方案:

    声明一个CGFloat的全局变量专门用来运算,最后赋值给frame中的x即可。


    除了ios7的问题,还遇到SDWebImage第三方库的问题。在UITableViewCell中自带的imageview通过sd获取网络图片时,只能显示到1张图片,靠视图滚动后可以陆续显示

解决方案:

1、在使用UITableviewCell自带的imageview显示图片时,最好不要用sd,自己写个简单的同步方法获取网络图片吧

2、不用UITableviewCell自带的imageview,自定义cell就没有这个问题。

0 0
原创粉丝点击