0

for ループ フロン スクロール ビューで動的に割り当てられたサブビューを削除したい。コードm tryinは次のとおりです。

for (int i=0; i<[appDelegate.NO_KPI count]; i++) {
static float j = 0;     
roc_temp = [[UIView alloc]init];
roc_temp.frame = CGRectMake(81, 57 + j, 193, 119);
label1 = [[UILabel alloc] init];
label1.frame =CGRectMake(0, 0, 193, 26);
label1.text = @"Budget";
[roc_temp addsubview:label1];
[scrollview addSubview:roc_temp];

roc_temp1 = [[UIView alloc]init];
roc_temp1.frame = CGRectMake(318, 57 + j, 193, 119);
label11 = [[UILabel alloc] init];
label11.frame =CGRectMake(0, 0, 193, 26);
label11.text = @"Actual";
[roc_temp1 addsubview:label11];
[scrollview addSubview:roc_temp1];
j+=166;
}
4

1 に答える 1

0

まず、-addSubview:がサブビューを保持するため、新しいサブビューを解放する必要があります。これにより、メモリリークが発生します。

答えるには:次のように、サブビューの「タグ」プロパティを設定します。

roc_temp.tag = 1000 * j;

次に、次のコードを使用して削除します。

[[scrollView viewWithTag:1000] removeFromSuperview];
于 2012-01-22T14:43:52.260 に答える