隐藏视图并相应地重新定位其他视图
Posted
技术标签:
【中文标题】隐藏视图并相应地重新定位其他视图【英文标题】:Hide view and re position other views accordingly 【发布时间】:2016-04-25 11:54:15 【问题描述】:我的表格视图项目下方有一些操作按钮。有7个项目。但是,有时会隐藏一些操作按钮。但是,当我隐藏一个项目时,位置与您在图像中看到的相同:
我怎样才能确保其他项目填满它的位置?
【问题讨论】:
如果您不需要支持 ios 8,请使用UIStackView
。
动作按钮的父视图是什么意思?
但是当我隐藏父视图时,其他视图会自动调整位置吗?
我想我把你的问题弄错了。你想让那个空间随着按钮 hide 消失吗?
我想要空间消失,我已经可以使用 button.hidden = true 使按钮消失
【参考方案1】:
取outlets
的constraints
并根据要求更改约束的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] 我想避免处理约束,但我想这是唯一的方法。谢谢! 我认为这是最好的方式,因为您的所有元素只需更改一个约束的常量即可管理。以上是关于隐藏视图并相应地重新定位其他视图的主要内容,如果未能解决你的问题,请参考以下文章
如何在自动布局中使用 UITableViewCell 的动态高度并在底部视图隐藏时将其他视图向上移动?