UIView の初期化子をカスタマイズして値を初期化子に渡すことができるようにする最良の方法を決定しようとしています。この値はdrawRect.
現在、私はデフォルトを使用しており、この UIView を作成するクラスは、呼び出し後にinitWithFrameiVar を値に設定しますが、実際には機能しています。UIView が初期化された後に設定されていても、何らかの形でこの iVar の値を取得しています。initWithFramedrawRect
したがって、次の2つのいずれかが必要です。
drawRect1) これで問題ないという自信: UIView が初期化された後に iVar が別のオブジェクトによって設定されるように、描画を少し遅らせることに頼ることができます。その場合、UIView の初期化がdrawRect呼び出されるのはいつですか?
または、
(CGRect)frame2)初期化中に値を渡す必要があります。これは、引数として以上を取るカスタム初期化子を作成するための最良の方法ですか?initWithFrame.これを行うのと同じくらい簡単でしょうか:
 myNewView=[[MyCustomView alloc] initWithFrame:myRect andMore:myValue];
そして、MyCustomView.m で:
 - (id)initWithFrame:(CGRect)frame andMore:(int)someValue
  {
     self = [super initWithFrame:frame];
     if (self) {
       myIvar=someValue;
       ... //continue as normal
     }
  }
このコードは良いアプローチでしょうか? drawRectそうすれば、呼び出される前に値がそこにあることを安心して知ることができます。