由于UITextViews存在一些渲染问题,我正在为场景中的每个UITextView动态创建UILabel,并使用renderInContext制作图像。完美的工作,除了我需要在渲染后删除标签,否则他们将在下次执行renderInContext时重新渲染。我正在使用removeFromSuperview来尝试删除标签,但它们不是“释放”它们只是在每次渲染时累积,并且它们在某些情况下会重新渲染。如何摆脱标签,以便它们不会重新渲染?
for (i = 0; i < [labelsArray count]; i++) {
[[labelsArray objectAtIndex:i] removeFromSuperview];
NSLog(@"label: %@", [labelsArray objectAtIndex:i]);
答案 0 :(得分:2)
如果它们仍然在您的阵列中,它们仍然保留。如果您希望它们被释放,您必须从阵列中删除您的标签。 尝试在其上设置UILabel指针,将其从superview和数组中删除,然后显示它。 它应该被释放
答案 1 :(得分:0)
答案似乎是我不仅要从superViews中删除我的子视图(标签和任何已删除的UITextView),还要使用以下命令从数组中删除这些视图:
[array removeObject:viewObject];