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)visible
{ 
    [myLabel setHidden:!visible]; 
    [myButton setHidden:!visible]; 
}

コードは機能しているはずです。ただし、コードが機能しないのは、ラベルとボタンの参照アウトレットを設定していないことが原因である可能性があります(Interface Builderで作成した場合)。 このように設定します

参照アウトレットはこのように設定する必要があります。そうしないと、非表示にするボタンがインターフェイス上のボタンであるかどうかがコンパイラーにわかりません。

コードを使用してボタン/ラベルを作成した場合は、それらを表示するように設定する前に、それらが解放されているかどうかを確認してください。

于 2012-07-14T04:01:41.803 に答える
3

多分これは少し簡単です:

-(void)myMethod:(BOOL)ys{
    myLabel.hidden = !ys;
    myButton.hidden = !ys;
}
于 2012-07-14T04:12:36.903 に答える
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 に答える
0

短くしようとしたら…`

-(void)myMethod:(BOOL)ys{
    myLabel.hidden = myButton.hidden = !ys;
 }
于 2013-06-27T15:03:24.243 に答える