解决方案
用百分比适配啊
比如你控件的宽度在4寸手机上是120,那么在别的尺寸上的宽度:就是别的宽度跟当前宽度的一个比值 乘以 120
当前屏幕宽度 / 你在哪个尺寸的宽度做的 (比如5s的宽320) * 那个控件的宽度
let imgWidth = UIScreen.mainScreen().bounds.size.width / 320 * 120
5,5c,5S(4寸):320 * 568 px
解决方案二:比较简单的方法就是用比例去设置frame
解决方案三:使用Autolayout之Masonry解决适配问题
解决方案四:赞同1楼,用Masonry不要太简单,代码量也少,用比例计算Frame如果是有横屏的 工作量还是蛮大的
解决方案五:简单的用frame和autrsizeingmask 复杂的只能自己写autoLayout
解决方案六: 现在的适配用第三方Masonry加入约束条件也可以做适配的。
自己做适配的话会比较简单,其实可以通过UI给的高保真图的尺寸和实际的设备尺寸来计算autoSizeScale,然后每次写的时候就用高保真上的宽高来乘上这个autoSizeScale。
例如:UI给的高保真是按照6的尺寸做的话,那么就RealUISrceenWidth=375,RealUISrceenHight=667,
autoSizeScaleX=获取实际设备的宽/RealUISrceenWidth,autoSizeScaleY = 获取时间设备的高/RealUISrceenHight.然后再把高保真上的宽和高拿过来分别*autoSizeScale的值就可以了。
修改RealUISrceenHight 4/4s : 480 5/5s :568 6/6s: 667 6p/6sp :736
修改RealUISrceenWidth 4/4s 5/5s: 320 6/6s :375 6p/6sp: 414
希望对lz有帮助
所有的控件全部用代码加添,然后坐标用相对坐标,相对坐标的计算根据屏幕尺寸来计算得到