更改约束以在 swift iOS 中扩展视图
Posted
技术标签:
【中文标题】更改约束以在 swift iOS 中扩展视图【英文标题】:Changing constraints to expand a view in swift iOS 【发布时间】:2021-06-21 08:11:08 【问题描述】:我有一个堆栈,里面有 2 个视图,黄色占堆栈的 70%,绿色占另外 30%。我想编写一个点击后的按钮:
-
将堆栈展开到屏幕顶部,我通过以下方式完成:
myStack.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
-
然后让绿色框占据整个堆栈,这样屏幕就完全是绿色的了
我已经用“等宽约束完成了 70:30 的事情,如下所示:widths
如何实现此功能以及将一切恢复正常的代码是什么? desired output
【问题讨论】:
【参考方案1】:-
将 stackView 分布更改为
Fill Proportionally
。
为每个视图单独设置宽度约束(优先级 = 999,允许中断)。 (0.7 of superview.width
第一,0.3 of superview.width
第二)。
调用firstView.isHidden = true
,它会自动拉伸第二个视图以完全覆盖stackView - 展开状态。
致电firstView.isHidden = false
,它将带您回到初始状态。
【讨论】:
感谢您的帮助,它正在按预期工作。在通过以下方式将堆栈拉伸到屏幕顶部后,如何使视图返回到其正常高度 250:myStack.topAnchor.constraint(equalTo: view.topAnchor).isActive = true。这一直延伸到顶部,但我怎样才能让它恢复到正常高度呢? 250 您需要停用stackView.top-to-superview.top
约束。一旦停用,它将恢复正常大小。以上是关于更改约束以在 swift iOS 中扩展视图的主要内容,如果未能解决你的问题,请参考以下文章
iOS:使用约束动画 UICollectionView 垂直扩展?
如何实现左右滑动以更改 swift IOS 中的数据/视图?