1

当我在 Xcode 4.5.2 中使用 UIColor clearColor 方法时,旧标签文本不会被清除。新文本正在叠加在旧文本之上。

下面是我的代码。每当我按下重新启动时,我都希望我的标签重置为@""。但它并没有被清除。

        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,然后添加一个属性来保存对每个标签的引用,然后您可以在方法内部使用它来设置/重置文本。

于 2012-12-23T19:20:12.713 回答