【iOS】アスペクト比固定でLayoutを作成する。

iOSにて、

複数画面サイズによる、調整ってあるかと思います。

よく聞くのがアスペクト比固定で、画面サイズを調整してほしい。

iPhone 4S系、5系、67系 ピクセル数、画面比率がそれぞれ違う・・・。)

しかも特定部分が! とか。

ネイティブアプリを作成した経験がある方ならピンとくるかと思いますが、

え? ってなります。

通常のXcodeのレイアウトファイルでもある程度は、

比率固定などできるかもしれませんが、

しかも、複数階層をまたいでのレイアウトとなると、

血反吐を吐きそうな、Autolayoutの設定が必要となってくるかと思います。

そこで、ふいに思いついた、

超簡単で強引でシンプルな調整方法を記載します。
※もちろん自己責任でお願いします。

手順
・拡縮したい場所のAutoLayoutを切る。(XIBで単独)
・一画面分のきっちり正しいサイズでLayoutを構築(絶対座標で)
・アスペクト比固定で拡縮したい物をViewの子とします。
・プログラム側で、4S系、5系、67系、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 >

コメント

このブログの人気の投稿

【iOS】Swiftでtransformから角度、ラジアン、ディグリー、スケールを求める

【android】 Webviewのコントローラー(ピンチイン・ピンチアウトのボタン)を消す

【android】PdfDocumentとPdfRenderer を利用しPDFの作成と表示 (java)