removeFromSuperview不会“释放”我的UILabel

时间:2012-09-16 13:45:05

标签: iphone xcode uilabel

由于UITextViews存在一些渲染问题,我正在为场景中的每个UITextView动态创建UILabel,并使用renderInContext制作图像。完美的工作,除了我需要在渲染后删除标签,否则他们将在下次执行renderInContext时重新渲染。我正在使用removeFromSuperview来尝试删除标签,但它们不是“释放”它们只是在每次渲染时累积,并且它们在某些情况下会重新渲染。如何摆脱标签,以便它们不会重新渲染?

for (i = 0; i < [labelsArray count]; i++) {

    [[labelsArray objectAtIndex:i] removeFromSuperview];

    NSLog(@"label: %@", [labelsArray objectAtIndex:i]);

2 个答案:

答案 0 :(得分:2)

如果它们仍然在您的阵列中,它们仍然保留。如果您希望它们被释放,您必须从阵列中删除您的标签。 尝试在其上设置UILabel指针,将其从superview和数组中删除,然后显示它。 它应该被释放

答案 1 :(得分:0)

答案似乎是我不仅要从superViews中删除我的子视图(标签和任何已删除的UITextView),还要使用以下命令从数组中删除这些视图:

[array removeObject:viewObject];