0

を使用して ViewController 内にビューを追加しました[self.view addSubview:newView]。newView は UIView タイプのオブジェクトです。newView 内に、 を使用していくつかのビューを追加しました[self addSubview:polyg];Polygsからも継承しUIViewます。しかし、彼らは決して引き寄せられません。drawRect:(CGRect)rect呼び出されることはありません。

私はiOSが初めてで、何が間違っているのかわかりません。

self.viewビューを newView に追加するときに使用しなかったことが関係していると思われます。self.viewnewView 内でも使用できません。

どうすればこれを機能させることができますか?

編集: これらの polyg オブジェクトを作成するとき、initWithFrame を使用し、次のように newView のフレームを送信しています:[[Polyg alloc] initWithFrame:self.frame]; これが原因でしょうか? Polyg は移動可能でサイズ変更可能なポリゴンになるので、それぞれが画面全体に描画できるはずだと考えました。

編集: 画面に指を触れるたびに viewController から呼び出される touchX:Y というメソッドを newView 内に作成しました。中に私はこれを書きました: NSLog(@"subview = %i", self.subviews.count);. 画面に触れるたびに、コンソールに次のように表示されます:subview = 89なので、サブビューがnewViewに追加されたと確信しています。

これを同じ touchX:Y メソッドに追加してみました:

        for (UIView* subview in self.subviews) {
            [subview setNeedsDisplay];
        }

ただし、サブビューの drawRect は呼び出されません。

4

1 に答える 1

1

最も可能性が高いのは、newView が完全に画面から外れているか、サイズが (0,0) であるということです。ployg サブビューを追加する直前に、デバッガーを使用して newView のフレームを出力します。

于 2013-06-23T23:54:32.597 に答える