隐藏视图并相应地重新定位其他视图

Posted

技术标签:

【中文标题】隐藏视图并相应地重新定位其他视图【英文标题】:Hide view and re position other views accordingly 【发布时间】:2016-04-25 11:54:15 【问题描述】:

我的表格视图项目下方有一些操作按钮。有7个项目。但是,有时会隐藏一些操作按钮。但是,当我隐藏一个项目时,位置与您在图像中看到的相同:

我怎样才能确保其他项目填满它的位置?

【问题讨论】:

如果您不需要支持 ios 8,请使用UIStackView 动作按钮的父视图是什么意思? 但是当我隐藏父视图时,其他视图会自动调整位置吗? 我想我把你的问题弄错了。你想让那个空间随着按钮 hide 消失吗? 我想要空间消失,我已经可以使用 button.hidden = true 使按钮消失 【参考方案1】:

outletsconstraints 并根据要求更改约束的constant

根据您的示例,取attach button's leading constraint(左约束)的出口并通过隐藏按钮的宽度(在您的情况下为前进按钮的宽度)减小它的常数+减少按钮之间的空间。

您可以在打开助手编辑器的情况下通过 ctrl+drag 从相应的约束连接到类。

例子;

@IBOutlet weak var buttonLeadingConstraint : NSLayoutConstraint?

然后改变

self.buttonLeadingConstraint.constant = self.buttonLeadingConstraint.constant - 50;

 // here 50 is space between button + button width 

希望这会有所帮助:)

【讨论】:

附加[self.view layoutIfNeeded] 我想避免处理约束,但我想这是唯一的方法。谢谢! 我认为这是最好的方式,因为您的所有元素只需更改一个约束的常量即可管理。

以上是关于隐藏视图并相应地重新定位其他视图的主要内容,如果未能解决你的问题,请参考以下文章

在集合视图中显示/隐藏顶行

如何在 iOS 中使用 swift 重新定位视图?

如何在自动布局中使用 UITableViewCell 的动态高度并在底部视图隐藏时将其他视图向上移动?

单击或触摸另一个视图时清除EditText焦点并隐藏键盘

iPhone - 我如何隐藏视图并让它的空间被其他视图使用(如 android visibility = GONE)

iPhone - 我如何隐藏视图并让它的空间被其他视图使用(如 android visibility = GONE)