2013-02-12 60 views
1

我準備爲RoundedRect類型的UIButton禁用userinteraction。我試圖通過代碼禁用RoundedRect類型的UIButton的用戶交互

[previousAudio userInteractionEnabled:NO]; 

,但得到終止應用程序異常 由於未捕獲的異常NSInvalidArgumentException,原因是:-[UIRoundedRectButton userInteractionEnabled:]:無法識別的選擇發送到實例

我能做些什麼,而不是禁用的用戶交互?

謝謝。

回答

7

可以使用previousAudio.enabled = NO OR YES instad的[previousAudio userInteractionEnabled:NO];

+2

「使能標誌與_」userInteractionEnabled「標誌不同,請參閱文檔以瞭解更多細節,但」啓用「標誌基本上也會影響按鈕的外觀。 ,那麼「enabled」標誌是正確的,但原始問題中的混淆是在「setUserInteractionEnabled」和「userInteractionEnabled」之間。「set」版本與[]括號符號一起使用,而後者被使用 – 2014-10-02 05:23:00

+0

@ErikvanderNeut我在我的回答中沒有說你不能使用'userInteractionEnabled'我只是建議你可以使用按鈕啓用YES或NO因爲對於按鈕,如果你使用啓用是不是作爲標準的用戶界面,你可以注意到顯示用戶界面可以觸摸,但是當你使用userInteractionEnabled用戶不能標識符是那個按鈕是可觸摸的或不是那個拉斯我建議啓用是否 – 2014-10-02 05:32:49

+0

感謝您的澄清@Nitin。你是對的,如果你想反映按鈕的外觀和感覺的變化,「啓用」是一個更好的選擇。 - 我想澄清的是,由於您使用[previousAudio userInteractionEnabled:NO]而不是[previousAudio setUserInteractionEnabled:NO]或previousAudio.userInteractionEnabled = NO,您得到了「無法識別的選擇器發送到實例」錯誤。只是想確保你知道點符號(我個人更喜歡)與[]括號符號之間的區別。 – 2014-10-09 01:21:26

3

它應該是:

[previousAudio setUserInteractionEnabled:NO]; 

previousAudio.userInteractionEnabled = NO; 
1

因爲沒有userInteractionEnabled:選擇。 userInteractionEnabled是getter。爲了設置屬性,你應該使用button.userInteractionEnabled = NO[button setUserInteractionEnabled:NO]

-1

,你可以將其設置爲desiabled previousAudio.enabled = NO或者你可以在IBAction爲方法

-(IBAction)previousAudioPressed:(id)sender{ 

    if (condition){ 
      //do something 
    } 

} 
0

設置條件使用setUserInteractionEnabled:NO的代替userInteractionEnabled: NO

[previousAudio setUserInteractionEnabled:NO]; 

無論你的按鈕是圓形的還是哈哈還有其他一些財產。