1

シングルビューアプリの場合、UIViewクラスのサブクラスであるDrawViewクラスが追加されます。

これはアプリのメインビューとして使用されるため、drawRectこのクラスのメソッドはうまく機能し、たとえば、物を描くことができますが、Xcodeによって生成されたコードには、初期化コードをそこに配置することを示す「//初期化コード」という行があります。の中にinitWithFrameありますが、そこにコードを入れても呼び出されず、ブレークポイントが設定されていますが、そこで止まることはありませんか?init次に、通常のメソッドを使用してを追加しましたが、どちらも呼び出されませんか?

4

2 に答える 2

3

-(id)initWithCoder:(NSCoder *)coderをオーバーライドしてみてください。ビューがペン先からロードされるとき、それはこのinitメソッドを使用すると思います。この質問を参照してください。

于 2012-04-21T20:18:11.763 に答える
1
  • initWithCoder:-Interface Builderのnibファイルからビューをロードし、ビューにカスタム初期化が必要な場合は、このメソッドを実装することをお勧めします。nib-loadingコードは、initWithFrame:メソッドを使用して新しいビューオブジェクトをインスタンス化しません。代わりに、NSCodingプロトコルの一部であるinitWithCoder:メソッドを使用します。nib-loadingコードは、initWithFrame:メソッドを使用して新しいビューオブジェクトをインスタンス化しません。代わりに、NSCodingプロトコルの一部であるinitWithCoder:メソッドを使用します。アップルのドキュメント

  • initWithFrame:-ビューのデフォルトの初期化メソッド。新しいビューオブジェクトは、使用する前にウィンドウのビュー階層に挿入する必要があります。プログラムでビューオブジェクトを作成する場合、このメソッドはUIViewクラスの指定された初期化子です。

ここでのいくつかの詳細情報:メソッドのオーバーライド

お力になれて、嬉しいです:)

于 2012-04-21T20:34:49.800 に答える