2017-03-23 46 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

实例变量将保留对按钮的拥有引用,以便在从超级视图中删除按钮时不会取消分配。 –

相关问题