2017-06-24 16 views
0

我有三個按鈕可以更改背景的顏色。我想在按下時隱藏紅色按鈕。如果按下GREEN或BLUE按鈕,則顯示它。 GREEN和BLUE按鈕也是如此。按下時隱藏UIButton,然後在另一個按鈕被按下時顯示它

我找不到方法叫removeFromSuperview。在ObjectiveC中,我曾使用mybutton.hidden = true 但這不起作用。

ViewController: UIViewController { 
    @IBAction func RED(_ sender: Any) { 

    print("background was \(String(describing: self.view.backgroundColor))") 
    self.view.backgroundColor = UIColor.red 
    print("background is now \(String(describing: self.view.backgroundColor))") 
} 

@IBAction func GREEN(_ sender: Any) { 
    print("background was \(String(describing: self.view.backgroundColor))") 
    self.view.backgroundColor = UIColor.green 
    print("background is now \(String(describing: self.view.backgroundColor))") 
} 

@IBAction func BLUE(_ sender: UIButton) { 
    print("background was \(String(describing: self.view.backgroundColor))") 
    self.view.backgroundColor = UIColor.blue 
    print("background is now \(String(describing: self.view.backgroundColor))") 
} 
+1

你應該可以做'button.isHidden = true'?如果它在ObjC中工作,它也應該在Swift中工作(通過翻譯)。 – Peterdk

+0

hmm。也許我做錯了什麼!我會再嘗試。 – Splenso

+0

nope我再次嘗試,得到UIButton沒有成員「ishidden」 – Splenso

回答

0

您需要爲每個按鈕創建一個IBOutlet才能訪問「isHidden」屬性。現在你只有一個IBAction被定義(至少在你提供的代碼中)。要創建IBOutlet,請將按鈕從按鈕拖動到視圖控制器的代碼,與您創建IBActions的操作類似。在彈出窗口中,確保「Connection」表示「Outlet」和「Type」是「UIButton」。根據需要命名它們(例如,redButton,blueButton)。然後你可以在適當的位置輸入「redButton.isHidden = true」。

IBAction只允許您控制按鈕按下時按鈕的功能。 IBOutlet需要訪問UIButton的屬性。

+0

哇!有用!感謝你寫得很好的答案;) – Splenso

相關問題