Ios 从情节提要中将NSLayoutConstraint常量重置为其原始值

Ios 从情节提要中将NSLayoutConstraint常量重置为其原始值,ios,uistoryboard,nslayoutconstraint,Ios,Uistoryboard,Nslayoutconstraint,想象一下这样一个场景,您已经为故事板中的几个大小类设置了一个带有NSLayoutConstraint的UIView,该约束具有不同的常量。现在,您希望通过修改该约束的常量来设置该视图位置的动画。假设您希望将其从-100设置为在故事板中为当前大小类设置的原始值。如何在动画代码中使用该值 这样,您就不必在代码中检测大小类,并使用与故事板中已设置的值对齐的值以编程方式进行设置。将布局约束连接到Interface Builder中的插座。然后在加载视图时,将的值缓存在ivar中。然后,您可以根据自己的意

想象一下这样一个场景,您已经为故事板中的几个大小类设置了一个带有
NSLayoutConstraint
UIView
,该约束具有不同的
常量。现在,您希望通过修改该约束的
常量来设置该视图位置的动画。假设您希望将其从-100设置为在故事板中为当前大小类设置的原始值。如何在动画代码中使用该值


这样,您就不必在代码中检测大小类,并使用与故事板中已设置的值对齐的值以编程方式进行设置。

将布局约束连接到Interface Builder中的插座。然后在加载视图时,将的值缓存在ivar中。然后,您可以根据自己的意愿对其进行更改和重置。

1)为您的约束创建一个出口

2) 在要设置约束动画的条件下,将constraint.constant值更改为要设置的值


3) 在动画块调用视图中。layoutifneed()

如果不更改不同大小类的
常量值,则该选项将起作用。但是,如果将任何w Any h设置为20,将任何w Compact h设置为10,那么用户在iPhone上启动纵向应用程序,然后旋转到横向应用程序,会怎么样?缓存的值现在不正确,并且您将视图放置在当前大小类的不正确位置。当方向更改时,您可以重新缓存该值。这正是我试图阻止的。这个值已经在故事板中定义了,我不想为每个大小类的每个约束重新定义每个值,并且存在不一致的风险。另外,请注意,大小类可以在不发生旋转的情况下更改。这是我决定做的,我从来没有需要每个类超过一个或两个。如果我不得不担心每一个价值观,我可能会更加努力。我想你可以试着直接从故事板上读它?你有没有想出解决这个问题的办法?@MichaelJohnston我没有