iOS Autolayout Программно ограничивает использование VFL

Я хочу сделать кнопку закрытия, как это,

введите здесь описание изображения

  • Я пытался закрепить кнопку, но она уменьшилась или исчезла Вот код,

Уменьшено

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[btnClose(==10)]-|"
                                                                         options:NSLayoutFormatAlignAllCenterY
                                                                         metrics:nil
                                                                           views:NSDictionaryOfVariableBindings(btnClose)]];

Исчез из-за ошибки

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[btnClose(==-10)]-|"
                                                                         options:NSLayoutFormatAlignAllCenterY
                                                                         metrics:nil
                                                                           views:NSDictionaryOfVariableBindings(btnClose)]];
  • Синий вид также устанавливается с помощью автомакета, и он отлично работает на всех экранах.

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


person Community    schedule 13.03.2015    source источник


Ответы (1)


Вы должны указать как горизонтальные, так и вертикальные ограничения (если 10 и 0 — это пробелы сверху и справа):

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[btnClose]-0-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:NSDictionaryOfVariableBindings(btnClose)]];

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[btnClose]"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:NSDictionaryOfVariableBindings(btnClose)]];

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

person Jakub Vano    schedule 13.03.2015