1

由于 UITextViews 的一些渲染问题,我正在为场景中的每个 UITextViews 动态创建 UILabel,并使用 renderInContext 制作图像。工作得很好,除了我需要在渲染后删除标签,否则下次我执行 renderInContext 时它们会重新渲染。我正在使用 removeFromSuperview 尝试删除标签,但它们并没有“释放”它们只是在每次渲染时累积,并且在某些情况下它们会重新渲染。我怎样才能摆脱标签,使它们不会重新渲染?

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

    [[labelsArray objectAtIndex:i] removeFromSuperview];

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

2 回答 2

2

如果它们仍在您的阵列中,它们仍将保留。如果你想让它们被释放,你必须从你的数组中删除你的标签。尝试在其上设置一个 UILabel 指针,将其从超级视图和数组中删除,然后显示它。它应该被释放

于 2012-09-16T14:08:26.950 回答
0

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

[array removeObject:viewObject];
于 2012-09-17T03:29:11.757 回答