关于iOS开发的一些坑

     最近发现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就没有这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值