0

我有一个非常简单的方法,但它不起作用。最终,从输入 YES,我想得到 NO 并反转。

-(void)myMethod:(BOOL)ys{
    if (ys==YES) {
        myLabel.hidden=NO;
        myButton.hidden=NO;
    }{
        myLabel.hidden=YES;
        myButton.hidden=YES;
    }
}

你们能帮我纠正和缩短代码吗?谢谢

4

4 回答 4

3

也许这更容易:

-(void)myMethod:(BOOL)ys{
    myLabel.hidden = !ys;
    myButton.hidden = !ys;
}
于 2012-07-14T04:12:36.903 回答
3
-(void)myMethod:(BOOL)visible
{ 
    [myLabel setHidden:!visible]; 
    [myButton setHidden:!visible]; 
}

代码应该可以工作。但是,您的代码不起作用可能是因为您没有为标签和按钮设置引用出口(如果您使用界面生成器创建它们)。 设置成这样

参考网点应该这样设置。否则,编译器将不知道您要隐藏的按钮是否是界面上的按钮。

如果您使用代码创建了按钮/标签,请在尝试将它们设置为可见之前检查它们是否已释放。

于 2012-07-14T04:01:41.803 回答
0

如果我们试图让它变短......`

-(void)myMethod:(BOOL)ys{
    myLabel.hidden = myButton.hidden = !ys;
 }
于 2013-06-27T15:03:24.243 回答
0
-(void)myMethod:(BOOL)ys{
    if (ys) {
        myLabel.hidden=NO;
        myButton.hidden=NO;
    } else {
        myLabel.hidden=YES;
        myButton.hidden=YES;
    }
}
于 2012-07-14T03:51:49.033 回答