1

Xcode4.5.2でUIColorclearColorメソッドを使用すると、古いラベルテキストがクリアされません。新しいテキストが古いテキストに重ねられています。

これが私のコードです。再起動を押すたびに、ラベルを@""にリセットしたいと思います。しかし、それはクリアされていません。

        CGRect frame=CGRectMake(intX, intY, 15, 18);
        UILabel *label = [[UILabel alloc] initWithFrame:frame];
        [self.view addSubview:label];
        [label setFont:[UIFont fontWithName:@"ChalkboardSE-Light" size:17]];

        CGRect frame1=CGRectMake(intSerialNoX, intY, 20, 18);
        UILabel *label1 = [[UILabel alloc] initWithFrame:frame1];
        [self.view addSubview:label1];
        [label1 setFont:[UIFont fontWithName:@"ChalkboardSE-Light" size:17]];

        label1.textColor = color;

        label.backgroundColor=[UIColor clearColor];
        label1.backgroundColor=[UIColor clearColor];

        if([strAction isEqualToString:@"GO"])
        {
            [label1 setText:[myLableSerialNoArray objectAtIndex:i]];
            [label setText:[[myLableWordsArray objectAtIndex:i] substringWithRange:NSMakeRange(j,1)]];
        }
        else if([strAction isEqualToString:@"RESTART"])
        {
            [label1 setText:@""];
            [label setText:@""];
        }
4

1 に答える 1

1

[label1 setText:@""];確実に呼び出されるようにブレークポイントを設定しました か?

いずれにせよ、問題は、このメソッドが呼び出されるたびに新しいラベルを割り当てて初期化し、同じメソッドへの以前の呼び出しから既に存在するラベルの上にそれらを配置していることだと思います。おそらく、alloc/init を 1 回だけ実行してから、各ラベルへの参照を保持するプロパティを追加して、メソッド内でテキストを設定/リセットすることができます。

于 2012-12-23T19:20:12.713 に答える