OGeek|极客世界-中国程序员成长平台

标题: iOS:以编程方式从 Storyboard 中重置约束以调整帧变化 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:58
标题: iOS:以编程方式从 Storyboard 中重置约束以调整帧变化

使用 Storyboard,我设置了多个 View ,这些 View 包含在 ScrollView 中,例如 this

“更多症状”按钮下的所有内容都是一个 View (除了 Collection View 其后)。我们称它为 moreSymptomsView。现在我想做的是当点击更多症状按钮时,我想用 setFrame 向下移动 moreSymptomsView 并通过设置显示它后面的 Collection View hidden 属性为 false。

它运行正常,但在尝试滚动后,moreSymtomsView 会回到原来的位置,例如 here (我假设由于它的限制)。

我应该如何以编程方式将 moreSymptomsView 的约束重置到新 Collection View 的底部?

谢谢!



Best Answer-推荐答案


如果你想在使用 AutoLayout 时改变框架。您应该更改 Constraintconstant。如果你 setFrame 如果与 UI 交互,它会自动回到以前的状态。对于您的情况,您可以这样做:

  1. 更多症状的拖放顶部约束:

enter image description here

为其命名。我将它命名为 constraintTopSympotomsLabel

  1. 当你想改变框架时:

    self.constraintTopSympotomsLabel.constant = ValueYouWant

用于将其移动到新框架。

你可以用同样的方式改变所有的约束来实现你想要的框架。

希望对您有所帮助!

关于iOS:以编程方式从 Storyboard 中重置约束以调整帧变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34446446/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4