0

Я пытаюсь преобразовать реляционное ограничение в визуальный формат. Подвью имеет равную ширину & Высота до супер-просмотра.NSLayoutRelationConstraint to Ограничение визуального формата

Вот мой код:

[parentView addConstraint:[NSLayoutConstraint 
     constraintWithItem:childView 
       attribute:NSLayoutAttributeHeight 
       relatedBy:NSLayoutRelationEqual 
        toItem:parentView 
       attribute:NSLayoutAttributeHeight 
       multiplier:1.0 
       constant:0]]; 

[parentView addConstraint:[NSLayoutConstraint 
     constraintWithItem:childView 
       attribute:NSLayoutAttributeWidth 
       relatedBy:NSLayoutRelationEqual 
        toItem:parentView 
       attribute:NSLayoutAttributeWidth 
       multiplier:1.0 
       constant:0]]; 

Как бы преобразовать это в визуальном формате?

+0

Подсказка '@" H: | [childView] | "', '@" V: | [childView] | "' – Antonis

ответ

2

Вы можете сделать это, используя два визуальных строки формата, одна горизонтальная, одна вертикальная:

NSDictionary* views = NSDictionaryOfVariableBindings(parentView, childView); 
NSArray* horzConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[childView(==parentView)]" options:0 metrics:nil views:views]; 
NSArray* vertConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[childView(==parentView)]" options:0 metrics:nil views:views]; 

Это, строго говоря, соответствует ограничениям, которые вы указали. Это делает ребенка равным размеру родителя, но не диктует положение ребенка в родительском.

Как предложил Антонис в комментариях, вы можете подойти к этому по-другому. Вы можете использовать H:|[childView]| и V:|[childView]|, чтобы края ребёнка соответствовали краям родителя. Это диктует не только размер, хотя и косвенно, но и положение.

0

Я бы порекомендовал добавление ограничения на строительную доску, создать диспетчер выпуска в виде контроллера и обновить константу, когда это необходимо.

Это будет легко управлять и изменять динамически на основе различных размеров экрана (4, 5 сек, 6, 6 Plus и т.д.)

+0

Вопрос задает вопрос, как это сделать в визуальном формате, не спрашивая, есть ли у него лучший способ сделать эта штука. –

Смежные вопросы