gpt4 book ai didi

ios - 以编程方式快速更改纵横比约束

转载 作者:行者123 更新时间:2023-11-28 07:27:25 26 4
gpt4 key购买 nike

我们有一个带有 UIButton 的 MainStoryBoard 和一个带有 4 个约束的 UIView foo:

  • foo top 到 superView top
  • foo 导致 superView 领先
  • foo 尾随 superView 尾随
  • foo aspectRatio 16:9

按钮的预期行为应该是它更改 foo 约束,以便 foo 将扩展到全屏,如果再次按下它应该具有之前的纵横比,16:9。

我尝试按照以下步骤使用约束的 IBOutlet 执行此操作:

  • 展开:
    • 从 foo 中移除 aspectRatio 约束
    • 为 superView 底部添加一个 foo 底部约束
  • 崩溃时:
    • 移除 foo 底部对 superView 底部的约束
    • 为 foo 添加 aspectRatio 约束

我也玩过高空,什么都没有。提前致谢。

最佳答案

您的初始约束应如下所示。

NSLayoutConstraint.activate([
foo.leadingAnchor.constraint(equalTo: superView.leadingAnchor),
foo.trailingAnchor.constraint(equalTo: superView.trailingAnchor),
foo.topAnchor.constraint(equalTo: superView.topAnchor)
])

let collapsedConstraint = foo.heightAnchor.constraint(equalTo: foo.widthAnchor, multiplier: 9/16)
let expandedConstraint = foo.bottomAnchor.constraint(equalTo: superView.bottomAnchor)
collapsedConstraint.isActive = collapsed
expandedConstraint.isActive = !collapsed

并且被触发的方法应该像这样改变约束。

@objc func tapAction() {
collapsedConstraint.isActive = collapsed
expandedConstraint.isActive = !collapsed
superView.layoutIfNeeded()
}

关于ios - 以编程方式快速更改纵横比约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com