2014-09-03 69 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