У меня есть следующий контроллер представления в моей раскадровке:
У него всегда будет 6 изображений, по умолчанию равных по ширине и высоте. Каждый вид изображения ограничен супервидом с: "равными высотами" и множителем 1/2.
Однако, прежде чем загружать изображения внутри, я читаю свойство, которое дает мне желаемую высоту для изображения (ширина никогда не будет изменена).
Таким образом, мой интерфейс (во время выполнения) может выглядеть так:
Мне кажется, мне нужно изменить константу множителя, но только для чтения.
Я видел сообщения о том, что мы можем обновить свойство константа ограничения, но оно в точках, мне нужно, чтобы он работал на каждом устройстве.
Теперь, что бы вы порекомендовали? Должен ли я удалить ограничение и добавить новый? Если я не удалю его и попытаюсь применить новое ограничение по высоте, оно будет автоматически удалено для меня?
Нужно ли мне использовать стручки, такие как snapkit, для выполнения этой работы?
Спасибо за вашу помощь.
ИЗМЕНИТЬ
Вот код, который я пробовал, но не удалось:
for (index, (drawing, ratio)) in drawingElements.enumerate() {
drawingViews[index].image = UIImage(named: drawing)
// update height constraint if ratio is different than defaut ratio of 1/2
if ratio != 0.5 {
heightConstraints[index].active = false
let newHeightConstraint = NSLayoutConstraint(item: drawingViews[index], attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.Height, multiplier: ratio, constant: 0)
drawingViews[index].addConstraint(newHeightConstraint)
self.view.layoutIfNeeded()
}
}
Я делаю это неправильно? Я не уверен в новом ограничении высоты, хотя