2010-08-12 49 views
12

我想禁用我的UIButton,所以我呼籲:避免使一個UIButton透明/透視禁用時

button.enabled = FALSE; 

然而,這使得按鈕看穿,我可以看到它下面的元素。我不介意它會改變顏色,我只是不希望它是透明的。

我試過在IB中勾選'不透明'和'剪輯子視圖'的框,但沒有喜悅。

有沒有簡單的方法來解決這個問題?我想我可以把一個UIImageView放在它後面,但它不是一個優雅的解決方案。

謝謝大家!

邁克爾

回答

24

嘗試userInteractionEnabled屬性:

button.userInteractionEnabled = NO; 
+0

完美!謝謝 - 我真的應該想到:D – Smikey 2010-08-12 14:52:08

+1

@ moby的答案是正確的。 – MatterGoal 2015-03-04 16:27:48

+0

那麼這個工程,但可能有其他問題,因爲按鈕上的觸摸不會被轉發到父視圖。 Button.adjustsImageWhenDisabled = NO;就像@Snowman建議的那樣更好 – 2017-12-07 09:54:30

1

在界面構建器中選擇您的按鈕,然後看看按鈕的屬性。有一個用於默認,突出顯示,選擇或禁用狀態配置的下拉菜單 - 選擇禁用,然後調整alpha屬性。

+0

AAAAH,謝謝,我卻從來沒有注意到!但是,當我選擇禁用狀態配置時,「視圖」面板中的任何內容都不會更改,但alpha仍然爲1,而「不透明」等的複選框保持不變,而不管選擇哪種狀態配置。唯一改變的是文本顏色和陰影顏色。所以問題仍然存在...... – Smikey 2010-08-12 13:09:33

+0

我找不到像當前Xcode版本中描述的下拉菜單。 – ixany 2017-02-03 20:34:40

+0

使用所選按鈕打開屬性檢查器,您應該看到標有「狀態配置」的下拉列表。 (至少糾正Xcode 8.2.1) – mbehan 2017-02-09 11:24:48

27

你也可以這樣做:

​​
+9

其實這應該是正確的答案! – Raphael 2013-07-08 09:08:40