【问题标题】:Changing constraints to expand a view in swift iOS更改约束以在 swift iOS 中扩展视图
【发布时间】:2023-03-13 03:21:01
【问题描述】:

我有一个堆栈,里面有 2 个视图,黄色占堆栈的 70%,绿色占另外 30%。我想编写一个点击后的按钮:

  1. 将堆栈展开到屏幕顶部,我通过以下方式完成:

myStack.topAnchor.constraint(equalTo: view.topAnchor).isActive = true

  1. 然后让绿色框占据整个堆栈,这样屏幕就完全是绿色的了

我已经用“等宽约束完成了 70:30 的事情,如下所示:widths

如何实现此功能以及将一切恢复正常的代码是什么? desired output

【问题讨论】:

    标签: ios swift constraints anchorpoint layout-anchor


    【解决方案1】:
    1. 将 stackView 分布更改为Fill Proportionally。
    2. 为每个视图单独设置宽度约束(优先级 = 999,允许中断)。 (0.7 of superview.width 第一,0.3 of superview.width 第二)。
    3. 调用firstView.isHidden = true,它会自动拉伸第二个视图以完全覆盖stackView - 展开状态。
    4. 致电firstView.isHidden = false,它将带您回到初始状态。

    【讨论】:

    • 感谢您的帮助,它正在按预期工作。在通过以下方式将堆栈拉伸到屏幕顶部后,如何使视图返回到其正常高度 250:myStack.topAnchor.constraint(equalTo: view.topAnchor).isActive = true。这一直延伸到顶部,但我怎样才能让它恢复到正常高度呢? 250
    • 您需要停用stackView.top-to-superview.top 约束。一旦停用,它将恢复正常大小。
    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多