2017-03-23 67 views
0

我想在我的swift 3應用程序中隱藏我的UIButton。隱藏UIButton,而不僅僅是刪除可見性

目前我設置

cell.myButton.isHidden = true 

這使得按鈕不再可見,但按鈕會乘坐空間還是服用。

我怎麼能真正隱藏按鈕?

我創建一個tableViewCell中的UIButton並與SnapKit

回答

0

設置的限制,我想你可以使用setNeedsLayout來調整你的tableViewCell子視圖的位置。當您在tableViewCell類設置你的buttonHide財產,也叫self.setNeedsLayout()
那麼你viewDidLayoutSubview將被觸發,在其中你應該設置你的tableViewCell的子視圖的框架。

+0

我調用了cell.setNeedsLayout - 但沒有任何更改。 – develth

+0

@develth在你tableViewCell類,你需要重寫'viewDidLayoutSubview'並把所有子視圖在正確的地方(在你的buttonHide財產的價值基礎) – jokeman

-2

如何設置高度爲的tableView行作爲0?

+0

我有連續的tableView需要顯示在其他元素。 – develth

+0

@develth,如果你設置一個高度約束等於0的按鈕?如果您使用的是Storyboard約束,我會告訴您爲高度約束創建一個插口,並在您想隱藏該按鈕時將常量設置爲0。但是,當你使用SnapKit時,也許你可以設置高度= 0的按鈕約束。 –

1

嘗試

cell.myButton.removeFromSuperview() 
+0

佈局崩潰。 – develth

+1

如果您有與此按鈕相關的其他項目限制,確保它會崩潰。 您可以通過向這些與超級視圖相關的相關項添加另一個約束來解決此問題。 –

+0

解決了我的問題 - 謝謝你的提示! – develth

0

你有不同的選擇。

您可以添加約束你的按鈕的高度和寬度,將它們連接起來的網點,並設置限制常量爲0。這將使他們零大小。

從它的上海華如圖@ AymanKarram的回答,您可以刪除的按鈕,但你需要保持一個強大的參考,或會被釋放。 (嘗試刪除@IBOutlet聲明myButton上的弱限定符作爲測試,這將導致IBOutlet擁有強大的參考。)

+0

我didn't通過故事板創建的視圖,所以我沒有任何@IBOutlets 任何可能性,以保持項目,我需要與AymanKarram's那個按鈕回答? – develth

+0

創建一個實例變量並保存你的按鈕。 –

+0

實例變量將保留對按鈕的擁有引用,以便在從超級視圖中刪除按鈕時不會取消分配。 –

相關問題