2010-08-02 68 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