Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios以编程方式更改约束_Ios_Autolayout_Nslayoutconstraint - Fatal编程技术网

ios以编程方式更改约束

ios以编程方式更改约束,ios,autolayout,nslayoutconstraint,Ios,Autolayout,Nslayoutconstraint,我正在使用带约束的自动布局。 superview的顶部空间为100 我现在想改变这一点,这样当用户将设备旋转到横向时 superview的顶部空间为50 这可以在设计时完成吗 如何在运行时做到这一点呢?好吧,如果您的50px用于横向和100用于纵向,可以通过与同级子视图的关系以及与superview边界的固定偏移来导出,那么是的,这可以在“设计时”完成,这实际上就是自动布局的目的 否则,您需要有一个对约束的引用,然后在willRotateToInterfaceOrientation:durati

我正在使用带约束的自动布局。 superview的顶部空间为100

我现在想改变这一点,这样当用户将设备旋转到横向时 superview的顶部空间为50

这可以在设计时完成吗


如何在运行时做到这一点呢?

好吧,如果您的
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