2017-01-19 11 views
1

Я пытаюсь изучить автозапуск, но застрял в точке.Применение Autolayout на UILabels в Xcode 7.3

Это то, что я хочу достичь, у меня есть пользовательская ячейка tableView, в которой у меня есть imageView и 3 ярлыка и кнопка.

enter image description here

Я попытался изменить приоритет сопротивления сжатия и приоритет обнимать, но не удалось. Так может кто-нибудь, пожалуйста, назовите меня, как я могу это сделать?

ответ

0

Если вы сделаете свои фиксированные размеры ярлыков (numberOfLines! = 0), они автоматически покажут ... если текстовое содержимое не подходит.

Чтобы создать макет вида, посмотрите на новый (с iOS 9) UIStackView, который позволяет складывать представления и управлять их автоматическим расположением.

Одним из возможных подходов к вашему требованию является наличие трех меток внутри UIStackView. Затем используйте ограничения автоматического компоновки, чтобы упорядочить UIStackView, кнопки и изображение. Один из ваших ограничений должны сделать UIStackView некоторую фиксированную ширину и/или высоту, так что вы можете контролировать размер этикеток:

Использование визуального языка: H: [myStackView (== 280)] или

theView.addConstraint(NSLayoutConstraint(item: myStackView, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.width, multiplier: 1, constant: 280)) 

Вот пример кода для создания UIStackView программно и ссылки на документацию Apple: https://developer.apple.com/reference/uikit/uistackview

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

let stackView = UIStackView(arrangedSubviews: [negativeResponseButton, positiveResponseButton]) 
stackView.axis = .horizontal 
stackView.distribution = .fillEqually 
stackView.alignment = .center 
stackView.spacing = 40 

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

  • Нет связанных вопросов^_^