使用autolayout可视化格式语言可以将视图的宽度设置为等于同一视图的高度吗?
这是我想要做的:
[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]];
答案 0 :(得分:3)
您需要创建一个固定的宽高比约束,根据documentation for the visual formatting language,当前不可能这样做。
一个无法表达的有用约束是固定的宽高比 (例如,imageView.width = 2 * imageView.height)。创造这样的 一个约束,你必须使用 constraintWithItem:属性:relatedBy:toItem:属性:乘数:常数:
答案 1 :(得分: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]];