【iOS】アスペクト比固定でLayoutを作成する。
iOSにて、
複数画面サイズによる、調整ってあるかと思います。
よく聞くのがアスペクト比固定で、画面サイズを調整してほしい。
(iPhone 4S系、5系、6~7系 ピクセル数、画面比率がそれぞれ違う・・・。)
しかも特定部分が! とか。
ネイティブアプリを作成した経験がある方ならピンとくるかと思いますが、
え? ってなります。
通常のXcodeのレイアウトファイルでもある程度は、
比率固定などできるかもしれませんが、
しかも、複数階層をまたいでのレイアウトとなると、
血反吐を吐きそうな、Autolayoutの設定が必要となってくるかと思います。
そこで、ふいに思いついた、
超簡単で強引でシンプルな調整方法を記載します。
※もちろん自己責任でお願いします。
手順
・拡縮したい場所のAutoLayoutを切る。(XIBで単独)
・一画面分のきっちり正しいサイズでLayoutを構築(絶対座標で)
・アスペクト比固定で拡縮したい物をViewの子とします。
・プログラム側で、4S系、5系、6~7系、Plus系の判定を導入(画面の高さで判定でもよい。UIScreen かな)
(高さから比率を求めるのも有りです。)
・比率固定で拡縮したいものを、CGAffineTransformMakeScale などを利用して拡縮
下記イメージ
<View>
<HeaderView />
<View>← ここをTransformなどで調整する。
<Label />
<Label />
<Label />
<Label />
<UIView>
<Label />
<Image />
</UIView>
<TableView>
<Cell>
<Cell>
<Cell>
</TableView>
<Label />
<Label />
</UIView>
<FooterView />
</View >
コメント
コメントを投稿