在动画 UI 元素时暂时禁用/删除约束
Posted
技术标签:
【中文标题】在动画 UI 元素时暂时禁用/删除约束【英文标题】:Temporarily disable/remove constraints while animating UI elements 【发布时间】:2016-09-15 16:14:33 【问题描述】:我已经在故事板控制器中很好地设置了我的 UI。运行该应用程序,iPhone 5S 模拟器中的一切看起来和运行良好。更重要的是,在代码中拥有自己的 IBOutlet(用于动画目的)的所有 UI 元素都按照编程的方式运行:当方法在需要时为这些 UI 元素设置动画时,按预期移动。
但是,我通过单击情节提要内的控制器来添加约束 --> 编辑器 --> 解决自动布局问题 --> 添加缺少的约束。在那之后,动画停止工作,因为约束使它们保持在原位。
是否有某种命令/代码可以在动画期间“暂停/停止/删除/禁用”约束,然后在动画完成后将它们添加回来,而无需手动添加约束?
【问题讨论】:
【参考方案1】:同时使用动画和自动布局的最佳方式是创建 UI 元素(UILabel、UIButton 等)的 IBOutlet。
您可以根据您的动画要求更改它们的常量值。
【讨论】:
“常数”是难题的重要组成部分。【参考方案2】:如果您使用自动布局,则不应尝试通过更改视图的框架来移动视图。相反,您应该对约束进行动画更改。
有关提示,请参阅此 *** 答案:
How do I animate constraint changes?
【讨论】:
好的。所以禁用约束是不可能的。如果现在只能通过操纵实际约束来实现动画,那么这就需要一种新的动画方法。感谢您的链接:这应该让我开始。以上是关于在动画 UI 元素时暂时禁用/删除约束的主要内容,如果未能解决你的问题,请参考以下文章
在 JavaScript 中更改 HTML 元素的样式并暂时禁用其 CSS 转换无法可靠运行 [重复]