在YY狼人殺項(xiàng)目中,設(shè)計(jì)提出一項(xiàng)界面優(yōu)化,由于iPhone5s的屏幕比較小,iPhone Plus款又太大,會(huì)使得游戲界面變得太狹窄或留白過(guò)多。設(shè)計(jì)要求等比適配。因?yàn)?S屏幕和6和Plus的屏幕寬高比都是相同的(只差一兩個(gè)像素)。只需要照iPhone6做一次布局然后所有東西都等比縮放就好了。
而iOS事實(shí)上本身并沒(méi)有等比布局方案,用代碼或者autolayout間距都是固定的,全部用代碼計(jì)算就太麻煩。而且字體也無(wú)法縮放,最后的解決方案是使用UIView的transform特性來(lái)布局。
- 在需要等比縮放布局的頁(yè)面創(chuàng)建一個(gè)UIView,寫死為iphone6的寬高。
- 在該UIView將所有的控件都按照設(shè)計(jì)圖布局好。
- 使用transform的縮放方法拿到當(dāng)前屏幕寬高按照比例將UIView縮放并加到controller的view上。布局就完成了。
由于使用transform,點(diǎn)擊事件和UI也都不會(huì)錯(cuò)亂,也會(huì)自動(dòng)適配。完美解決等比適配的問(wèn)題。