ユーザーがボタンをクリックすると、ビューがその下にビューを表示するアプリを開発しています。そのビューに高さを割り当てる正しい方法は、基準に依存するか、配置された内部ビューに基づいて高さを計算する必要があるたびにハードコーディングする必要があります。高さのはずですが、今後UIが変わる可能性があるので、高さが変わるかもしれません。皆さんの考えを知りたいのですが、どちらが正しいですか?
前もって感謝します!
ユーザーがボタンをクリックすると、ビューがその下にビューを表示するアプリを開発しています。そのビューに高さを割り当てる正しい方法は、基準に依存するか、配置された内部ビューに基づいて高さを計算する必要があるたびにハードコーディングする必要があります。高さのはずですが、今後UIが変わる可能性があるので、高さが変わるかもしれません。皆さんの考えを知りたいのですが、どちらが正しいですか?
前もって感謝します!
ビューのレイアウトが変わらない限り、ハードコーディングされた値を使用します。後で変更する場合でも、最初にハードコードされた値を使用し、それが本当に必要になったときに実装を動的なものに変更します。私の論理の背後にある理由は、それが本当に必要になるまで条件が非常に急速に変化する可能性があるため、動的実装を今実装したとしても、それが本当に必要なときに再度変更する必要がないかどうか確信が持てないからです。それまでの仕様変更例
私はハードコードされたものと計算されたものの混合を行います:
ビューの位置を計算するには、ハードコードされたインセットを定義します:
CGFloat topInset = 5;
CGFloat bottomInset = 5;
CGFloat leftInset = 5;
CGFloat interButtonDistance = 10;
次に、サブ ビュー フレームの位置を次のように計算します。
CGFloat startX = 0;
CGFloat startY = 0;
CGFloat buttonSize = 50;
CGFloat buttonX = leftInset + column * (buttonSize + interButtonDistance);
さらに、ハードコーディングされた画面サイズを使用せず、それらを読み取ります
CGFloat height = self.view.frame.size.height; // or similar
次に、ビューの下部にボタンを配置できます
buttonY = height - buttonHeight - bottomInset;
このテクニックを使用すると、iPhone / iPad の画面の高さからもう少し独立できます。画面サイズが異なるデバイス (iphone 5) で使用する場合は、値を調整する必要がありますが、これは簡単です。うまくいけば、topInset と boittomInset を調整するだけで済み、残りはすぐに使用できます (うまくいけば)。