1

UITextViews のレンダリングの問題のため、シーン内の UITextViews ごとに UILabels を動的に作成し、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

答えは、スーパービューからサブビュー(ラベルと削除されたUITextViewも)を削除するだけでなく、次を使用して配列からこれらのビューを削除する必要があるということのようです。

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