2011-09-30 49 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]; 

編輯

這裏有一個解決方案,我已經與時間

另一種方式來解決這個問題教訓將是使一個單獨的筆尖包含視圖並多次添加筆尖的實例。實現此解決方案的一個很好的模板是以與cellForRowAtIndexPath方法中使用自定義UITableViewCell相同的方式進行。

+0

感謝您提出這個問題。這間接回答了我的一個!節省時間!哇噢! –

回答

39

視圖只能包含在單個父視圖的層次結構中。只要將它添加到新的,它就會從前一箇中刪除。在這種情況下,它將被刪除並添加回同一視圖的層次結構。您需要製作副視圖的副本才能多次顯示它。

+0

我剛剛嘗試了您的建議(我認爲)並編輯了我的帖子。 – coder

+1

您只是創建一個指向同一個UIView對象的新指針。由於UIViews不會對副本做出響應,因此您需要實際分配和初始化一個新的UIView並對其進行自定義以匹配第一個UIView。這可能有助於這方面:http://stackoverflow.com/questions/4425939/uiview-can-not-be-copy。 –

相關問題