我定义一个宏
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
每个view都判断一下(view是用纯代码写的),大家有什么好办法?
3楼,@yuan 只要不是要动态生成布局的效果用AutoLayout一般没有问题,而且常规的情况其实很简单,例如要把一个view固定在屏幕底端以及要把一个view的高度保持与屏幕高度一致,这类都很简单。
但是有些情况会比较棘手甚至莫名其妙,例如用autolayout固定位置的几个view如果一起要实现抖动就报autolayout错误了,还有更需要留意的是在scrollview内使用autolayout时,有不少制约,虽然用autolayout的规则分析起来是可行的,但是实际上行不通。还有我尝试过动态删除一个constraint在重建一个也不行,只能一次过建立一批满足规则的。
虽然我也觉得autolayout不完美,但你得先用,至少我觉得很多UI是界面布局比较固定的情况autolayout都是运作很良好的。
写一个单例类。h文件创建一个枚举,罗列出你想支持的设备。m文件中,通过获取屏幕分辨率判断来给枚举属性赋值。使用时候只要调用这个单例获得这个枚举属性的当前值就可以知道是什么设备了。