gpt4 book ai didi

ios - removeObjectFromSuperView 不使用 if 语句

转载 作者:行者123 更新时间:2023-11-29 12:55:42 25 4
gpt4 key购买 nike

我有一个按钮,当按下它时应该隐藏状态栏并在其位置放置文本。然后,当按下按钮时,标签应该从 view 中删除,状态栏将重新出现。第一部分有效——状态栏被隐藏,标签被放置在 view 上,问题是当我第二次按下按钮时(删除文本并放回状态栏) .状态栏重新出现,但标签没有从 view 中删除。为此,我使用了 if 语句。我也在使用 removeObjectFromSuperView,这是行不通的。

代码如下:

 - (IBAction)buttonPressed:(id)sender {

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 21)];

label.text = @"This is a test";

[label setFont:[UIFont systemFontOfSize:13]];

label.textAlignment = NSTextAlignmentCenter;



if (hidden == NO) {

[UIApplication sharedApplication].statusBarHidden = YES;

[self.view addSubview:label];

hidden = YES;

}else if (hidden == YES) {

[UIApplication sharedApplication].statusBarHidden = NO;



[label removeFromSuperview];

hidden = NO;

}

}

谢谢编辑:问题如下: enter image description here

最佳答案

您需要在 buttonPressed: 方法之外跟踪您的标签。现在,您每次按下按钮时都会创建一个新标签,然后删除相同的标签。

例如:

@interface MyViewController () {
UILabel *label;
}

- (IBAction)buttonPressed:(id)sender {
if (hidden == NO) {

[UIApplication sharedApplication].statusBarHidden = YES;

label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 21)];
label.text = @"This is a test";
[label setFont:[UIFont systemFontOfSize:13]];
label.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:label];

hidden = YES;

} else if (hidden == YES) {

[UIApplication sharedApplication].statusBarHidden = NO;

[label removeFromSuperview];
label = nil;

hidden = NO;
}
}

您还可以设置 label = nil; 一旦从 super View 中删除它。

关于ios - removeObjectFromSuperView 不使用 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21220588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com