1

使用自动布局视觉格式语言是否可以将视图的宽度设置为等于同一视图的高度?

这是我想做的事情:

[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[stopButton(100)]" options:kNilOptions metrics:nil views:views]];
[view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-50-[stopButton(stopButton.height)" options:kNilOptions metrics:nil views:views]];
4

2 回答 2

3

您需要创建一个固定的纵横比约束,根据视觉格式化语言的文档,目前这是不可能的。

一种无法表达的有用约束是固定的纵横比(例如,imageView.width = 2 * imageView.height)。要创建这样的约束,您必须使用 constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:。

于 2016-07-13T23:38:26.570 回答
0

Luke Van In 关于固定纵横比的答案是一个很好的答案!

当然,如果您只是想在多个地方使用相同的值,您可以修改代码以使用指标字典,如下所示:

 NSDictionary* metrics = @{@"stopButtonSize":@100};
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[stopButton(stopButtonSize)]" options:kNilOptions metrics:metrics views:views]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-50-[stopButton(stopButtonSize)]" options:kNilOptions metrics:metrics views:views]];
于 2016-07-13T23:45:18.060 回答