2014-09-03 67 views
0

我在UIView(使用ARC)中有一个UILabel pinter。 我动态创建大量文本并每次覆盖相同的指针。 我认为,如果我始终使用相同的指针,并用新对象覆盖它们,它们仍然在我的视图中,但它们的指针将被释放。但正如我所看到的,如果文字被更改并且执行了drawRect,我的记忆力会一直增加。也许有人知道更好的方式来做到这一点,或解决这个记忆问题。UIView中的动态UILabel增加内存

UPDATE:代码

@interface Bars : UIView{ 
    NSMutableDictionary *dictCopy; 
    UILabel *pivotLabel; 
} 
for (a lot of times) { 
pivotLabel = [[UILabel alloc] initWithFrame:frame]; 
pivotLabel.text = pivotText; 
pivotLabel.backgroundColor = [UIColor clearColor]; 
pivotLabel.textColor = self.color; 
[self addSubview:pivotLabel]; 
} 

回答

1

当您添加一个新的标签作为一个子视图父视图保留它。删除指针不足以将其删除。要删除标签,请执行以下操作:

 [self.myLabel removeFromSuperview]; 
     self.myLabel = nil; 
+0

是的,这解决了我的内存问题,但也从我的视图中删除文本。我喜欢它......暂停......不。我需要将文字留在那里。 – Watsche 2014-09-03 09:31:24

+0

如果您将添加更多子视图到您的视图,内存将增加。没有其他办法了。 – Adam 2014-09-03 09:36:37

+0

也许是清除和释放uiview的所有东西然后再次绘制的方式? – Watsche 2014-09-03 09:40:49