Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.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 - Fatal编程技术网

Ios 按代码自动布局问题?

Ios 按代码自动布局问题?,ios,autolayout,Ios,Autolayout,我在没有sb和xib的情况下使用autolayout。但是最近我遇到了一些问题 我不知道应该使用哪个视图来实现以下两种方法 - (void)addConstraint:(NSLayoutConstraint *)constraint - (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints 和两个子视图:view1和view2。当我使用autolayout添加约束来描述view1和vi

我在没有sb和xib的情况下使用autolayout。但是最近我遇到了一些问题

我不知道应该使用哪个视图来实现以下两种方法

- (void)addConstraint:(NSLayoutConstraint *)constraint

- (void)addConstraints:(NSArray<__kindof NSLayoutConstraint *> *)constraints
和两个子视图:view1和view2。当我使用autolayout添加约束来描述view1和view2时

[WHICHVIEW addConstraint:<#(nonnull NSLayoutConstraint *)#>];
[WHICHVIEW addConstraint:];
或 [WHICHVIEW addConstraints:]

哪个视图应该是什么?
换一种说法,哪个视图取决于view1和view2之间的关系?如果view1与view2的层次结构不同怎么办?

不要使用任何
哪个视图
。不要调用
addConstraints:
。调用
NSLayoutConstraint.activateConstraints
。它的优点是它可以为您完成所有工作—它会自动将约束添加到正确的视图中。

该视图应该是您尝试约束的[所有]项的父视图。因此,如果要向scrollview添加多个视图,并尝试将它们约束到scrollview和scrollview,则scrollview应该是WHICHVIEW。如果view1和view2根本不在同一层次结构中,那么就不能在两者之间添加约束。

只要@rayesquire的目标是iOS 8及以上版本,我同意。如果没有,则必须使用addConstraint,并且作为所有视图父视图的视图就是要将其添加到的视图。
[WHICHVIEW addConstraint:<#(nonnull NSLayoutConstraint *)#>];