【问题标题】:removeObjectFromSuperView not working with if statementremoveObjectFromSuperView 不适用于 if 语句
【发布时间】:2023-04-03 07:35:02
【问题描述】:

我有一个按钮,按下时应该隐藏状态栏并将文本放置在其位置。然后,当按下按钮时,标签应该从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;

}

}

谢谢 编辑:问题如下:

【问题讨论】:

    标签: ios iphone objective-c model-view-controller ios7


    【解决方案1】:

    您需要在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; 从超级视图中删除后设置它。

    【讨论】:

    • 我按照你说的做了,还是有同样的问题,谢谢。
    • @user3186310 我扩展了buttonPressed: 方法。试试看。
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多