0
私は複数のUIView、UIButtonsなどがあり、最初に使用するときにそれぞれの特定のコードを実行したいと思います。UIグラフィック要素の自己呼び出しイニシャライザ
たとえば、の場合は、最初にtitle.frame
に電話すると、まず自分のボタンがnillではないことを確認するセッターを呼びたいと思います。 @「タイトル」のタイトルなど
どうすればいいですか?
私は複数のUIView、UIButtonsなどがあり、最初に使用するときにそれぞれの特定のコードを実行したいと思います。UIグラフィック要素の自己呼び出しイニシャライザ
たとえば、の場合は、最初にtitle.frame
に電話すると、まず自分のボタンがnillではないことを確認するセッターを呼びたいと思います。 @「タイトル」のタイトルなど
どうすればいいですか?
私は怠惰な初期化について言及していると思いますが、title.frame
の代わりにアクセサメソッドself.title.frame
を使用する必要があります。このようなgetterメソッドを実装することができます。
- (UIButton *)title {
if (!title) {
// Allocate the button
// Set the button title
}
return title;
}
この「self.title.frame」の呼び出しが@Deepakのように機能する理由をさらに明確にするために、もう少し詳しく解説します。この呼び出しは '[[self title] frame];にコンパイルされるからです。 'self.title.frame = newFrame;'のようにフレームを設定している場合と同じです。 '[[self title] setFrame:newFrame];にコンパイルされます。両方ともgetterが最初に呼び出されています。 –
@ Paul.s余分な説明に感謝します! – Alex