Проблема автомакета с увеличенным дисплеем на iPhone6 ​​и 6Plus

Я использую Auto Layout и Size Classes в своей раскадровке, и у меня есть кнопка с вертикальным ограничением в нижней части моего контроллера представления. Однако, когда я запускаю свое приложение на моем iPhone6 ​​Plus в режиме увеличения (Settings -> Display & Brightness -> Display Zoom -> Zoomed), кнопка не меняет свое положение.

Это ошибка? Если да, то что было бы лучшим обходным путем, я мог бы узнать, находится ли приложение в режиме увеличения, и соответствующим образом изменить ограничение?

Или я делаю что-то еще не так здесь?


person m.y    schedule 04.01.2016    source источник
comment
Есть ли какой-то код относительно контроллера представления? Можешь сделать скриншот?   -  person jalone    schedule 04.01.2016
comment
спасибо @jalone, я узнал, в чем проблема. это привело к другому вопросу, хотя stackoverflow.com/questions/34618527/, если у вас есть какие-либо идеи там случайно   -  person m.y    schedule 05.01.2016


Ответы (2)


По сути, iPhone 6+ в режиме масштабирования — это iPhone 6. А iPhone 6 в режиме масштабирования — это iPhone 5. Вам не нужно ничего менять, просто убедитесь, что ваш код работает на iPhone 5 и 6.

И не пытайтесь выяснить, на каком телефоне вы работаете. Например, есть способы, используя некоторую информацию об устройстве, чтобы определить, что вы работаете на определенной модели iPhone — если вы используете эти методы, ваш код может подумать, что он работает на iPhone 6+, когда он увеличен, и ошибиться. Просто проверьте размер экрана (и убедитесь, что вы также проверяете поворот).

person gnasher729    schedule 04.01.2016
comment
спасибо @gnasher729 проблема возникала только в увеличенном виде, см. мой ответ. Хотя это привело к другому вопросу, который я задал здесь stackoverflow.com/questions/34618527/, если у вас также случайно были какие-либо идеи. - person m.y; 05.01.2016
comment
Для других с моей проблемой: если вы используете SDVersion, убедитесь, что вы вызываете resolutionSize вместо deviceSize, если вы делаете некоторые ручные вычисления прямой цели iPhone 5. - person Iulian Onofrei; 28.11.2017

Решение, которое я нашел, заключалось в том, чтобы добавить ограничения в мое представление контейнера. Был код, который программно устанавливал рамку представления контейнера на основе фонового изображения.

Независимо от того, в увеличенном или стандартном режиме отображения, фактический размер фонового изображения не меняется, даже если он полностью помещается на экране при масштабировании. Таким образом, рамка моего контейнера оказалась больше, чем ожидалось, и поэтому моя кнопка оказалась почти за пределами экрана устройства.

person m.y    schedule 05.01.2016