Objective c 单个字符串中的编程NSLayoutConstraints
有没有一种方法可以将下面3行语法组合成一个单独的语句,如(不起作用):Objective c 单个字符串中的编程NSLayoutConstraints,objective-c,nslayoutconstraint,Objective C,Nslayoutconstraint,有没有一种方法可以将下面3行语法组合成一个单独的语句,如(不起作用): 据我所知,没有。据我所知,没有。没有,但你可以用两行代码来完成: [_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[cardContainer1]|" options:0 metrics:nil views:viewsDictionary]]; 这会将卡容器1固定到superview的顶部和底部。然后:
据我所知,没有。据我所知,没有。没有,但你可以用两行代码来完成:
[_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[cardContainer1]|" options:0 metrics:nil views:viewsDictionary]];
这会将卡容器1固定到superview的顶部和底部。然后:
[_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[cardContainer1][cardContainer2][cardContainer3]|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
将剩余卡片容器的顶部和底部对齐
这假设您希望视图彼此相邻,但实际上没有指定任何水平布局细节
当使用视觉格式时,它有助于考虑视觉格式语言的每一行在视图中表示一行或一列布局 没有,但可以分两行进行:
[_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[cardContainer1]|" options:0 metrics:nil views:viewsDictionary]];
这会将卡容器1固定到superview的顶部和底部。然后:
[_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[cardContainer1][cardContainer2][cardContainer3]|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
将剩余卡片容器的顶部和底部对齐
这假设您希望视图彼此相邻,但实际上没有指定任何水平布局细节
当使用视觉格式时,它有助于考虑视觉格式语言的每一行在视图中表示一行或一列布局 这实际上不是一行,但您可以通过循环执行这三行来减少重复:
for (NSView *view in @[cardContainer1, cardContainer2, cardContainer3]) {
[_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(view)]];
}
这实际上不是一行,但您可以通过在一个循环中执行这三行来减少重复:
for (NSView *view in @[cardContainer1, cardContainer2, cardContainer3]) {
[_cardsContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(view)]];
}
真倒霉我会等上一天左右,看看是否有人偶然扔了什么东西,如果没有,我会接受的。糟糕。我会等上一天左右,看看是否有人偶然扔了什么东西,如果没有,我会接受。所有的答案都很好,而且很快!谢谢大家。所有的答案都很好,而且很快!谢谢各位。