Изменение свойства contentsGravity в слое, предназначенном только для преобразования, не будет иметь никакого эффекта
Я начал создавать очень простую игру в крестики-нолики. Основная цель - сделать представление пропорциональным размерам экрана всех устройств iOS. Поэтому я положил изображение на ViewController
, сделать его в полный размер экрана, а затем я помещаю его в Stack View. Я добавил ограничения в этот Stack View 0 со всех сторон. И когда я запустил симулятор, то все выглядит хорошо. Но я получаю сообщение в консоли. Что это значит?
4 ответа
Это может произойти, потому что вы изменили атрибут Mode в StackView:
Я получил это предупреждение, когда установил режим в Aspect Fit.
Любое изменение слоя на UIStackView
приведет к этому предупреждению. Как указывает предупреждение UIStackView
слой только для преобразования, и он немного отличается от UIView
, Согласно документации:
UIStackView является не рендерингом подкласса UIView; то есть он не предоставляет никакого собственного пользовательского интерфейса. Вместо этого он просто управляет положением и размером своих упорядоченных видов. В результате некоторые свойства (например, backgroundColor) не влияют на представление стека. Точно так же вы не можете переопределить layerClass, drawRect: или drawLayer:inContext:.
Подробнее об этом здесь.
Возможно, он не указывает на точный источник проблемы ОП, но, надеюсь, он проливает свет на то, почему UIStackView
поведение не то же самое и не следует путать с UIView
,
Для кого то, что нужно: я установил clipToBounds
в false в StackView.
Похоже, то, что вы сделали, совершенно правильно.
Однако мне интересно, почему вы решили поместить свое изображение в вид стека, когда вы могли бы так же легко закрепить стороны без стека. Я большой поклонник стековых представлений, но они не везде имеют смысл. Если вы не планируете добавлять новые представления и изменять размер своей тиктактной доски, я не смогу ее использовать.