Как судить об iPhone серии iPhoneX? - PullRequest
0 голосов
/ 21 сентября 2018

Можно ли как-то судить, что iPhone - это серия iPhoneX (iPhone X XR XS XSmax)?

Мой способ:

#define iPhoneXSeries (([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0f) ? (YES):(NO))

Есть ли какие-то скрытые проблемы?

Или есть способ получше?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Мне нужно знать, потому что высота строки состояния iPhoneX неизменна, но высота строки состояния другого iPhone может изменяться

Так что вам не нужно действительно знать, нужно ли вамприложение работает на телефоне iPhone X-серии вообще - вы действительно пытаетесь выяснить, может ли высота строки состояния измениться.И я хочу сказать, что вы на самом деле даже не заботитесь о строке состояния так, как вы хотите знать, где вы можете разместить контент в своем представлении, чтобы он всегда был незаметен в строке состояния идругие системные объекты.В любом случае, вы должны убедиться, что задаете правильный вопрос. Не полагайтесь на модель устройства, чтобы рассказать вам о функциях, и не полагайтесь на определенные функции, чтобы сообщать вам модель устройства.

iOS обычно дает вам возможность узнатьо функциях, которые вам нужны.Если ваша цель - сделать ваш контент видимым, вам следует использовать свойство UIView safeAreaInsets, а также метод safeAreaInsetsDidChange(), который система будет вызывать при изменении безопасной области (например, при изменении высоты строки состояния).Затем вы можете настроить свой контент в соответствии с новыми безопасными вставками.Создание вашего приложения таким образом означает, что вам не нужно беспокоиться о том, что ваше приложение сломается на новых моделях устройств с наборами функций, которых вы не ожидаете, и вам не нужно беспокоиться о будущих обновлениях iOS, которые подорвут ваши предположения.

0 голосов
/ 21 сентября 2018

Попробуйте это:

let size = UIScreen.mainScreen().bounds.size
print("Your device size: \(size)");

if size.height == 814 {
print("This is an iPhone X")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...