2010-08-02 83 views
0

我想重申這是這樣創造了一個子視圖:如何更新子視圖?

CGRect keyLabelRect = CGRectMake(2, [heightofrow intValue]*i, [breitescroller2 intValue]-2,[heightofrow intValue]); 
UILabel *keyLabel = [[UILabel alloc] initWithFrame:keyLabelRect]; 
[Inhalt1 addSubview: keyLabel]; 
[keyLabel release]; 

通過調用一個方法,「breitescroller2」有了新的價值,這術語叫做第二次和第三次等等。我的問題是,舊位置的「舊UILabel」留在視圖中,但我想用新位置替換它。有一個簡單的方法嗎?通過刪除整個子視圖(keyLabel removeFromSuperView]較新的一個的都被刪除了。

感謝您的幫助!

回答

0

我敢肯定,你首先需要通過removeFromSuperview刪除舊的標籤。

+0

我改變了我的方法,通過刪除「UILabel * keyLabel」,現在我在標題中創建標籤,現在我可以使用「removeFromSuperview」,thx。 – Jonathan 2010-08-02 14:06:11

3

如果您如果這樣做,那麼簡單地修改現有UILabel的屬性並且不要每次都創建一個新屬性會更有意義嗎?在我看來,按照現在的方式來執行它,尤其是因爲您想要用新的替換舊的,有點低效的記憶方式。

我只是一個開始但是,Nner與Cocoa和Obj-C合作,所以我可能會錯過一些讓我的建議不可行的事情。

+0

是的,你是對的,我會改變我的方法來優化性能。 – Jonathan 2010-08-02 14:04:39

+0

正確:爲什麼要重新創建它?這不是真正的內存,而是CPU的開銷。更改標籤的文本效率更高。在CPU週期(以及擴展功率)很重要的移動設備上,效率應該是您最關心的問題之一。 – 2010-08-02 19:29:35