2016-04-10 82 views
1

以外的按鈕我有一個UIButton,應該只有有時出現。在viewDidLayoutSubviews我做了以下內容:無法取消隱藏除ViewDidLayoutSubviews()

override func viewDidLayoutSubviews() { 
    super.viewWillLayoutSubviews() 
    clearButtonOutlet.hidden = true 

但是,當我嘗試做clearButtonOutlet.hidden = false在其他地方,該按鈕將不會出現。

起初我以爲也許我的約束被搞砸了,但這使得按鈕重新出現:

override func viewDidLayoutSubviews() { 
    super.viewWillLayoutSubviews() 
    clearButtonOutlet.hidden = true 
    clearButtonOutlet.hidden = false 

爲什麼我不能使按鈕在其他地方重新出現?

編輯1:當我試圖使按鈕重新顯示:

func textFieldDidBeginEditing(textField: UITextField) { 

    //some stuff 
    switch textField.tag { 

     //tag = 3 is the when I want the clear button to show 
    case 3: 
     //launch the date picker 
     launchDatePicker(textField) 

     //once DatePicker is launched, show the clear button 
     clearButtonOutlet.hidden = false 
    default: break 
    } 
+0

你可以發佈不起作用的代碼嗎?最好是主菜類。 –

回答

2

只設置隱藏它不會做的一切,你需要去重繪視圖。當您創建不在viewDidLayout中的按鈕時,我會設置clearButton.hidden = true,或者當視圖重新佈局(在iPad或橫向調整大小)時,它將始終隱藏。然後在你的textFieldDidBeginEditing方法中,我會設置clearButton.hidden = false像你一樣,然後致電view.setNeedsLayout()強制它重新佈局和繪製。