2 sugar i love Sugar_I_Love 于 2016.03.11 08:32 提问

IOS 如何用纯代码适配屏幕
ios

在应用中如何用纯代码适配不同的iPhone设备,有没有好的方法?

7个回答

Margaret_MO
Margaret_MO   2016.03.22 22:50

用百分比适配啊

比如你控件的宽度在4寸手机上是120,那么在别的尺寸上的宽度:就是别的宽度跟当前宽度的一个比值 乘以 120

// 当前屏幕宽度 / 你在哪个尺寸的宽度做的 (比如5s的宽320) * 那个控件的宽度
let imgWidth = UIScreen.mainScreen().bounds.size.width / 320 * 120

5,5c,5S(4寸):320 * 568 px

jie_lin
jie_lin   2016.03.11 08:57

比较简单的方法就是用比例去设置frame

qq_29284809
qq_29284809   2016.03.11 09:33

使用Autolayout之Masonry解决适配问题

haoziy1989511
haoziy1989511   2016.03.11 09:57

赞同1楼,用Masonry不要太简单,代码量也少,用比例计算Frame如果是有横屏的 工作量还是蛮大的

mushaofeng1990
mushaofeng1990   2016.03.11 10:24

简单的用frame和autrsizeingmask 复杂的只能自己写autoLayout

aaaa99996666
aaaa99996666   2016.03.28 17:33

现在的适配用第三方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有帮助

aaaa99996666
aaaa99996666 这个修改的是看高保真的尺寸,你可以问问你们ui出的图是多少尺寸的就知道
一年多之前 回复
lx624909677
lx624909677   Ds   Rxr 2016.03.30 19:34

所有的控件全部用代码加添,然后坐标用相对坐标,相对坐标的计算根据屏幕尺寸来计算得到

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!