私は通常、次のようにビューコントローラーで静的な const 形式で四角形と色を宣言します。(これらはコンパイル時です)
#import "something.h"
static const CGRect someRect = { w, x, y, z };
static const uint8_t someColor[] = { 255, 0 , 0}
@implementation
// other methods
@end
この方法は、デバイス固有のシナリオに関してはうまく機能しません。たとえば、iPhone5 および iPod Touch 第 5 世代の rect を少し高くしたい場合、コンパイル時にこれを決定する方法はありません。(iPhone 5 の場合は、armv7s アーキテクチャのビルド設定でプリプロセッサ マクロを追加できる可能性があります -> 下の画像)、iTouch の場合、アーキテクチャは armv7 であり、これは iPhone4S とも衝突します。将来的に同じアーキテクチャで画面サイズを変更する場合、このアプローチは文字通りねじ込まれます。
私の質問は、回避策/修正またはこれに代わるものです。? また、心に留めていることをいくつかリストアップしますが、このようなことを行うためのあなたの意見とベストプラクティスを知りたいです.
1 - 古い 320x480 デバイスの場合と同じように実行し、実行時に割り当てられた正しい画面サイズを取得するため、UI 要素を拡大または拡大します ( autoresizingmask )。
2 - +initialize() メソッドを使用します。これはランタイムになりますが (元のアプローチのコンパイル時間とは対照的)、画面サイズとデバイスの種類を見つけるためのすべての高度なメソッドにアクセスできます。
上記のすべての方法はばかげているため、または他の方法です。