ios以编程方式更改约束
我正在使用带约束的自动布局。 superview的顶部空间为100 我现在想改变这一点,这样当用户将设备旋转到横向时 superview的顶部空间为50 这可以在设计时完成吗ios以编程方式更改约束,ios,autolayout,nslayoutconstraint,Ios,Autolayout,Nslayoutconstraint,我正在使用带约束的自动布局。 superview的顶部空间为100 我现在想改变这一点,这样当用户将设备旋转到横向时 superview的顶部空间为50 这可以在设计时完成吗 如何在运行时做到这一点呢?好吧,如果您的50px用于横向和100用于纵向,可以通过与同级子视图的关系以及与superview边界的固定偏移来导出,那么是的,这可以在“设计时”完成,这实际上就是自动布局的目的 否则,您需要有一个对约束的引用,然后在willRotateToInterfaceOrientation:durati
如何在运行时做到这一点呢?好吧,如果您的
50
px用于横向和100
用于纵向,可以通过与同级子视图的关系以及与superview边界的固定偏移来导出,那么是的,这可以在“设计时”完成,这实际上就是自动布局的目的
否则,您需要有一个对约束的引用
,然后在willRotateToInterfaceOrientation:duration:
方法中,您需要更改此约束的常量
的值,并为superview调用LayoutFneed
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
self.myConstraint.constant = (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) ? 50. : 100.;
[self.someView layoutIfNeeded];
}
(在浏览器中编写,可能有错误)我只需要知道如何将属性值添加到NSLayoutConstraint。感谢您的帮助NSLayoutConstraint.constant