Пустой UIStackView вызывает неоднозначную высоту/позициюIOS

Программируем под IOS
Ответить
Anonymous
 Пустой UIStackView вызывает неоднозначную высоту/позицию

Сообщение Anonymous »

У меня есть два представления: одно UIView и одно UIStackView

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

let mainView = UIView()
mainView.translatesAutoresizingMaskIntoConstraints = false

let stackView = UIStackView()
stackView.axis = .vertical
stackView.translatesAutoresizingMaskIntoConstraints = false
Они оба добавляются в superView с этими ограничениями

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

NSLayoutConstraint.activate([
mainView.topAnchor.constraint(equalTo: view.topAnchor),
mainView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
mainView.leadingAnchor.constraint(equalTo: view.leadingAnchor),

stackView.topAnchor.constraint(equalTo: mainView.bottomAnchor),
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
Когда и UIView, и UIStackView не содержат никаких других представлений, я получаю предупреждения для обоих представлений в отладчике

Высота неоднозначна для uiview
Высота и вертикальное положение неоднозначны для uistackview

Но если Я добавляю UIButton в UIStackView, а затем устанавливаю его скрытым с помощью .isHidden = true, оба предупреждения исчезают, за исключением iOS10, где оба предупреждения остаются.
С предупреждениями отладчика или без них я получаю желаемый результат: если UIStackView пуст (или все подпредставления скрыты), UIView закрывает весь экран.
Что здесь происходит, почему одно скрытое представление не совпадает с пустым stackView и почему поведение отличается на iOS10? И последнее, но не менее важное: как я могу удовлетворить требования iOS10, не ставя под угрозу мой текущий макет, который, по-видимому, работает для всех устройств после iOS10?

Подробнее здесь: https://stackoverflow.com/questions/584 ... t-position
Ответить

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

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

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

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

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