【发布时间】:2013-12-05 12:27:54
【问题描述】:
我正在以编程方式打印标签,但无法将其从屏幕上移除。我试过removeFromSuperview 和lbl1.hidden = YES; 和lbl1= nil; 但它们都不起作用。它一直停留在屏幕上,而我可以在调试中看到它从ELSE 传递,如下面的代码所示。
我的问题在哪里?
-(void)reloadData
lbl1 = [[UILabel alloc] initWithFrame:CGRectMake(320, 530, 550, 200)];
if (result1 > result2 && al == YES)
{
lbl1.userInteractionEnabled = YES;
lbl1.text = @" Warning!! ";
lbl1.tag = 30;
lbl1.font = [UIFont fontWithName:@"Helvetica" size:18.0];
lbl1.textColor = [UIColor redColor];
lbl1.backgroundColor = [UIColor clearColor];
lbl1.lineBreakMode = NSLineBreakByWordWrapping;
lbl1.numberOfLines = 2;
[self addSubview:lbl1];
[lbl1 release];
}
else{
//Non of them is removing the label.
[lbl1 removeFromSuperview];
lbl1= nil;
lbl1.hidden = YES;
}
【问题讨论】:
-
在这种情况下,我认为您的方法调用多次请调试您的代码
-
为什么你在第一个
if之前初始化标签因为你没有将它添加到视图(addSubview),它不在屏幕上。但是,我认为,那是因为你总是做一个 alloc/init ......所以,如果它不存在,那就做 alloc/init。 -
@Luai Kalkatawi - 我的回答是否适合你。
标签: ios label cgrectmake