2

iOS で を使用してフレームを作成している場合、プロパティをCGRectMake()設定するか を使用すると、x、y、幅、および高さが求められます。これらを供給します。frameinitWithFrame:

しかし、自動レイアウトでは、次に、「x を真ん中に配置する」「幅を画面の半分に設定する」のように言いますCGRectMake()

で何を設定すればよいCGRectMake()ですか? 0? 任意の値ですか?私が欲しいものに近いものはありますか?

4

1 に答える 1

6

自動レイアウトを使用する場合、frameプロパティをまったく設定しないでください。を設定することはできますがframe、そうすることには目的がなく、コードが誤解を招くだけframeです。これは、 が制約から計算されるディメンションに取って代わられるためです。frame混乱を避けるために、制約を使用してコントロールのサイズを完全に定義し、完全に設定しないようにすることをお勧めします。

したがって、プログラムでビューを作成する場合は、 の代わりに をinitWithFrame実行してくださいinittranslatesAutoresizingMaskIntoConstraintsまた、 に設定することを忘れずNOに、適切な制約をすべて追加して、レイアウトが明確になるようにしますが、競合する制約もないようにします。

于 2013-06-08T20:10:26.180 に答える