Если вы хотите, чтобы представление принудительно заполняло ширину своего суперпредставления, действительно ли это так жIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Если вы хотите, чтобы представление принудительно заполняло ширину своего суперпредставления, действительно ли это так ж

Сообщение Anonymous »

Предположим, у вас есть, например, вертикальное представление стека. Его выравнивание является ведущим (потому что вы хотите, чтобы большинство элементов сжимались влево).
Однако у вас есть один особый тип элементов, который вы хотите иметь на полную ширину.
Для достижения этой цели я всегда использовал какое-то сложное решение:

Код: Выделить всё

class FullWidthThing: .. {

..
translatesAutoresizingMaskIntoConstraints = false

private lazy var fullWidth: NSLayoutConstraint = {
guard let sv = superview else { return NSLayoutConstraint() }
let v = widthAnchor.constraint(equalTo: sv.widthAnchor)
v.isActive = true
return v
}()

override func layoutSubviews() {
if superview != nil {
_ = fullWidth
}
super.layoutSubviews()
}
}
Но действительно ли это так же просто, как установить для встроенного параметра значение .greatestFiniteMagnitude? Поверхностное тестирование показывает, что это работает:

Код: Выделить всё

private lazy var setup: () = {
translatesAutoresizingMaskIntoConstraints = false
setContentCompressionResistancePriority(.required, for: .horizontal)
...
return ()
}()

override var intrinsicContentSize: CGSize {
var sz = super.intrinsicContentSize
sz.width = .greatestFiniteMagnitude
return sz
}
Должно ли это работать, или есть проблемы с этим, или есть общий способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ally-as-si
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»