2016-06-29 10 views
0

Знаете ли вы, почему traitCollectionDidChange вызывается даже без изменений размера класса.traitCollectionDidChange: Вызывается, даже если у меня нет никаких изменений

Выбор UILabel, у меня есть в моей раскадровке Attribute Inspector/Installed check для UILabel. Нет особых случаев для установки в соответствии с классом размера.

Поэтому я не понимаю, почему вызывается traitCollectionDidChange, когда я вращаю устройство?

Да, он вызывается после viewDidLod, но также каждый раз, когда я вращаю устройство/эмулятор.

Если бы я хотел реагировать на поворот, я бы использовал viewWillTransitionToSize.

Обновление: Хм, передумав это. Я думаю, что размер класса на самом деле также меняется при повороте iPhone.

Можете ли вы придумать traitCollectionDidИзменить как специализированный метод viewWillTransitionToSize - облегчить пороговые значения для указания, когда мы пересекаем границы класса размера?

ответ

1

Класс размера изменится, если вы повернете iPhone, но не изменитесь, если вы повернете iPad (который имеет обычный размер как по горизонтали, так и по вертикали).

Поворот считается изменением среды интерфейса, поэтому вызывается traitCollectionDidChange.

+0

Что делать, если это происходит, даже если я не вращаюсь или ничего не делаю? У меня есть эта проблема прямо сейчас в расширении клавиатуры: этот метод вызывается дважды: один раз перед viewDidLoad, устанавливая начальные классы размера в hR wC, то почти сразу, устанавливая классы в hC wC .... Я использую iPhone 6 sim iOS 8.1 (это не происходит на 9,3/10,3 sims). –

+0

Не знаю. Пожалуйста, задайте новый вопрос. – Cesare

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