2013-06-13 2 views
0

Я пытаюсь использовать программные визуальные ограничения для отображения метки и кнопки рядом друг с другом. Тем не менее, UIImageView, используемый в качестве фона кнопки, делает внутренний размер кнопки слишком большим.UIImageView и автоматический макет в коде

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

  1. Как установить ограничение так, чтобы высота кнопки на той же высоте в качестве метки (а не наоборот)
  2. Кнопка должна сохранить исходное соотношение сторон изображения - его ширина должна также соответствует его собственной высоты (может быть, это приходит бесплатно?)

ответ

0

следующие работы для этого:

  1. Установите ширину для кнопки в визуальном макете: @"|-[titleLabel][refreshButton(==26)]"
  2. Добавить ограничение таким образом, чтобы высота кнопки равна его собственной (теперь явно) ширина:

    NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:refreshButton 
                       attribute:NSLayoutAttributeHeight 
                       relatedBy:NSLayoutRelationEqual 
                       toItem:refreshButton 
                       attribute:NSLayoutAttributeWidth 
                      multiplier:1.0f 
                       constant:0.0f]; 
    

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