2013-03-21 10 views
9

キーが辞書に存在しない場合は、ボタンを無効にする必要があります。 UIButtonのsetEnabled機能を使用しましたが、デフォルトに設定されているイメージが表示されます。iOSのボタンを無効にする

コードは次のようになります。私は、シミュレータで実行したときに

if([self.InfoDictionary objectForKey:ButtonExist]) 
{ 
    [button1 setEnabled:YES]; 
} 
else 
{ 
    [button1 setEnabled:NO]; 
} 

画像はまだ表示されます。これに関するいくつかのガイダンスが必要です。あなたはUIButtonのUIImageを非表示にする場合

if([self.InfoDictionary objectForKey:ButtonExist]) 
{ 
    [button1 setHidden:YES]; 
} 
else 
{ 
    [button1 setHidden:NO]; 
} 

その後:

+0

'ボタンが何もしないかどうかを制御enabled'。 'hidden'を使って非表示にしたり、' 0.0'と '1.0'の間に' alpha'を設定してグレー表示にすることができます。 –

+0

ButtonExistとは何ですか?この鍵は? – Pratik

答えて

10

enable = YES財産のuserInteractionEnabled財産クリックしたときにアクションを実行を設定することができます。

enable = NOプロパティは、クリック時にアクションが実行されないようにします。

ボタンを非表示にする場合は、hiddenプロパティをYES、またはその逆に設定できます。他の方法は、alphaプロパティを0(不可視)または1(可視)

2

使用は

if([self.InfoDictionary objectForKey:ButtonExist]) 
    { 
     [button1 setBackgroundImage:[UIImage imageNamed:@"YOUR IMAGE"] forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [button1 setBackgroundImage:[UIImage imageNamed:@""] forState:UIControlStateNormal]; 
    } 

が、これはあなたを助けることを願っています。 すべてのベスト!!!

+0

私は隠されたビューを使用すると思った?私は正しい? – lakesh

+0

UIButtonはUIViewサブクラスです。 – Jsdodgers

+0

UIButtonでも動作します。 – Yashesh

6

また、あなたはボタンのUIButton

if([self.InfoDictionary objectForKey:ButtonExist]) 
    { 
     [button1 setEnabled:YES]; 
     button1.userInteractionEnabled = YES; 
    } 
    else 
    { 
     [button1 setEnabled:NO]; 
     button1.userInteractionEnabled = NO; 
    } 
+0

これは、イメージがまだ表示されているOPの問題には対処していません。 –

+0

はい。まだ出現している画像の問題は解決しません。 – lakesh

0

に設定することです。問題は、誤ってジェスチャーハンドラのボタンをタップで有効にしていたことでした。

このような副作用を探します。 swift3で

1

self.button.isEnabled = false 
関連する問題