2011-08-27 15 views
7

このようにcellForRowAtIndexPathにスイッチを作成しました。これはどういう意味ですか? initWithFrame:CGRectZero]

UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero]; 

CGRectZeroはCGRectMake(0,0,0,0)に相当します。 しかし、スイッチは通常のサイズで表示されます。 私は実際のサイズを指定しませんでした。 上記のコードのしくみを教えてください。

答えて

6

UISwitchはカスタマイズできませんが、これはサイズにも適用されます。

UISwitchはinitWithFrame:を無効にし、制御に適したサイズを適用します。指定された矩形のサイズ成分は無視されます。

+0

の標準サイズを表す固定サイズの値は、実際UISwitchはsizeThatFitsをオーバーライド:その効果は同じである。実際にUIView class referenceは、と言います – progrmr

0

すべてのUIViewオブジェクトは、UIViewのsizeThatFits:メソッドを実装することによってフレームサイズをオーバーライドできます。 UISwitchオブジェクトを返す

スイッチビュー

関連する問題