2011-07-27 6 views
0

私は複数のUIView、UIButtonsなどがあり、最初に使用するときにそれぞれの特定のコードを実行したいと思います。UIグラフィック要素の自己呼び出しイニシャライザ

たとえば、の場合は、最初にtitle.frameに電話すると、まず自分のボタンがnillではないことを確認するセッターを呼びたいと思います。 @「タイトル」のタイトルなど

どうすればいいですか?

答えて

3

私は怠惰な初期化について言及していると思いますが、title.frameの代わりにアクセサメソッドself.title.frameを使用する必要があります。このようなgetterメソッドを実装することができます。

- (UIButton *)title { 
    if (!title) { 
     // Allocate the button 
     // Set the button title 
    } 
    return title; 
} 
+2

この「self.title.frame」の呼び出しが@Deepakのように機能する理由をさらに明確にするために、もう少し詳しく解説します。この呼び出しは '[[self title] frame];にコンパイルされるからです。 'self.title.frame = newFrame;'のようにフレームを設定している場合と同じです。 '[[self title] setFrame:newFrame];にコンパイルされます。両方ともgetterが最初に呼び出されています。 –

+0

@ Paul.s余分な説明に感謝します! – Alex

関連する問題