更改约束以在 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自动布局问题

iOS:使用约束动画 UICollectionView 垂直扩展?

表格视图中的行不会扩展它的宽度并且是堆叠的 Swift

如何实现左右滑动以更改 swift IOS 中的数据/视图?

swift中tableView的单元格高度扩展时更改标签文本

Swift 2 集合视图扩展,用于水平滚动到垂直