2011-09-30 21 views
20

これが可能かどうかわかりませんが、私がしたいのは、サブビューを複数回ビューに追加することです。同じサブビューを複数回表示して表示する

[self.view addSubview: newView]; 
newView.center = CGPointMake(160, 100); 
[self.view addSubview: newView]; 
newView.center = CGPointMake(160, 200); 
[self.view addSubview: newView]; 

このすべてがするが、新しいものを追加することなく、周りnewViewを移動している:私はこのような何かを試してみました。何か案は?

私もこの試みた:

[self.view addSubview:newView]; 
UIView *anotherView = newView; 
anotherView.center = CGPointMake(160, 100) 
[self.view addSubview:anotherView]; 

編集

をここに私はこの問題を解決するための別の方法は、別のを作ることであろう時間

で学んだ解決策ですnibのビューを含み、nibのインスタンスを複数回追加します。このソリューションを実装するためにうまくいくテンプレートは、カスタムが同じ方法でcellForRowAtIndexPathメソッドで使用されるようにすることです。

+0

ありがとうございます。これは間接的に私の1つに答えました!時間が節約! WOOHOO! –

答えて

39

ビューは、1つの親ビューの階層にのみ含めることができます。新しいものに追加すると直ちにそれが前のものから削除されます。この場合、削除されて同じビューの階層に追加されます。サブビューを複数回表示するには、サブビューのコピーを作成する必要があります。

+0

私はちょうどあなたの提案を(私は思う)試みて、私のポストを編集しました。 – coder

+1

同じUIViewオブジェクトへの新しいポインタを作成するだけです。 UIViewはコピーに応答しないので、新しいUIViewを実際に割り当てて初期化し、最初のUIViewと一致するようにカスタマイズする必要があります。これは、それに関して助けになるかもしれません:http://stackoverflow.com/questions/4425939/uiview-can-not-be-copy。 –

関連する問題