Ahs*_*san 1 objective-c uilabel ios
我认为我有一个UILabel.如果正在调用某个函数,我想删除UILabel.我尝试了几种方法,但它不起作用!
代码尝试:
[[self.view viewWithTag:1] setHidden:YES];
Run Code Online (Sandbox Code Playgroud)
要么
label.hidden=YES;
Run Code Online (Sandbox Code Playgroud)
要么
[label removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有这些代码,但无济于事.我有点让我知道我在这里失踪了吗?谢谢.
我的代码的其他部分:
UILabel *startLabel=[[[UILabel alloc] initWithFrame:CGRectMake(55, 45, 300, 30)] autorelease];
UILabel *startLabel2=[[[UILabel alloc] initWithFrame:CGRectMake(40, 65, 300, 30)] autorelease];
if ((internetActive==NO)||(hostActive==NO)) {
status=1;
//add the label
startLabel.text=@"Cannot connect to server.";
startLabel.backgroundColor=[UIColor clearColor];
startLabel.textColor=[UIColor whiteColor];
startLabel.font=[UIFont systemFontOfSize:18];
startLabel.tag=1;
[self.view addSubview:startLabel];
startLabel2.text=@"Please check your connection.";
startLabel2.backgroundColor=[UIColor clearColor];
startLabel2.textColor=[UIColor whiteColor];
startLabel2.font=[UIFont systemFontOfSize:18];
startLabel2.tag=2;
[self.view addSubview:startLabel2];
startLabel.hidden=NO;
startLabel2.hidden=NO;
}
else if ((internetActive==YES) &&(hostActive==YES))
{
if(status==1)
{
//[startLabel removeFromSuperview];
//[startLabel2 removeFromSuperview];
//[[self.view viewWithTag:1] setHidden:YES];
//[[self.view viewWithTag:2] setHidden:YES];
NSLog(@"INSIDE!");
startLabel.hidden=YES;
startLabel2.hidden=YES;
[startLabel removeFromSuperview];
[startLabel2 removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)
您列出的所有方法都有效.所以我担心你没有在正确的地方搜索你的bug.
确保:
label你得到的实例是好的label实例(你可以删除你不小心插入的副本......)调试这类问题的一种非常有效的方法是(我每天都这样做很多次......):
当断点命中时,在gdb控制台中输入该命令:
> po [[self view] recursiveDescription]
Run Code Online (Sandbox Code Playgroud)
recursiveDescription将显示一个[self view]子视图树,其中包含地址和许多有用的信息,如坐标......隐藏...这将使您能够清楚地了解该视图中发生了什么.
转到下一步,removeFromSuperview打电话后,再次播放命令,然后看看改变了什么...... 仔细检查对象的地址.
一般学习gdb和调试,你再也不用问这些问题:)
| 归档时间: |
|
| 查看次数: |
3040 次 |
| 最近记录: |