0

私は現在iOSプログラミングを学んでおり、(うまくいけば)単純な問題があります。カスタマイズされたクラスのUIViewで動作する描画プログラムを作成しました。これは、viewDidLoadメソッドのメインViewControllerでの起動時に初期化されます

Image_DrawDraw *drawing = [[Image_DrawDraw alloc] initWithFrame:self.view.bounds];
[self.view addSubview:drawing];

プログラムをもう少し洗練されたものに変えたいと思います。いくつかのボタン、ステータスバー、画像ビューを含むxibファイルを作成しました。この新しいビューで、正確には画像ビューの上に描画できるようにしたいのですが、ステータスバーやボタンの上には描画できません。しかし、Image_DrawDrawクラスの初期化に問題があり、xib全体をオーバーライドするだけで、描画できる黒い画面に戻ります。ご協力ありがとうございました!

4

1 に答える 1

0

viewsサブビューをビュー階層に追加すると、それがスーパービューの配列プロパティの最後のアイテムになります。viewsビューの階層化順序は配列に基づいており、アイテムの最下部のビューとアイテム[views objectAtIndex:0]の最上部のビューがあります[views lastObject]。Xibに他のすべてのビューを配置し、Xibのロード後にImage_DrawDrawビューをコードに追加すると、それが一番上のビューになり、ボタンが不明瞭になります。

コードに追加する代わりに、Xibに直接配置することもできます。

xibにカスタムビューを追加します。既存のxib画像ビューの上、およびボタンの下に配置します。ビューのカスタムクラスをImage_DrawDrawに設定します。

これで、次のコード行は必要ありません。

Image_DrawDraw *drawing = [[Image_DrawDraw alloc] initWithFrame:self.view.bounds];
[self.view addSubview:drawing];

コードでImage_DrawDrawxibビューを参照するには、viewControllerのでそのIBOutletプロパティを作成し、@interfaceCtrlキーを押しながらXibファイルの行をドラッグしてXibビューをIBOutletに接続する必要があります。

于 2013-01-27T04:31:39.460 に答える