2016-07-13 4 views
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]]; 

ответ

3

Вы должны были бы создать Фиксированные пропорции ограничение, которое, в соответствии с documentation for the visual formatting language, не возможно в настоящее время.

Одним из полезных ограничений, которые не могут быть выражены является фиксированным соотношением сторон (например, imageView.width = 2 * imageView.height). Чтобы создать такое ограничение , вы должны использовать constraintWithItem: attribute: relatedBy: toItem: attribute: multiplier: constant :.

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]]; 
Смежные вопросы