- 1
- 2
- 3
- 4
- 5
- 6
- 7
Код конца 2014 года
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
if (iOSDeviceScreenSize.height == 480)
isRetina = true;
else
isRetina = false;5
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−406
Код конца 2014 года
CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
if (iOSDeviceScreenSize.height == 480)
isRetina = true;
else
isRetina = false;5
Так что хотелось бы иметь такую инструкцию :)
Для говнокодера - да. Нормальные люди пишут код, который годен больше месяца
Расскажешь почему именно ios 8?
Кроме того, проверка изначально не верна, height = 480 был равен и на айфоне 3gs, и 3g, которые не имели ретина экранов.
Также на UIScreen есть проперти scale, в котором будет 2.0 или 3.0, если девайс ретина.
Ну а помимо всех перечисленных пунктов могу добавить, что этот код я встретил в десятке контроллеров этого легаси проекта.
Scale? Ок, открываем документацию и читаем когда он появился. А после этого читаем когда появился bounds.
И дата 2014 кстати ни о чем не говорит. Ты лучше напиши, какую минимальную версию ios должно поддерживать приложение и iphone или ipad тоже?
Scale - iOS 4.0. Deployment target проекта - iOS 7. iPhone only.
Если приложение запускается на айпаде мини(единственный не ретина девайс, оставшийся в природе), то 2x ассеты просто даунскейлятся.
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
Айфоны - 320 x 480, 320 x 568, 375x667, 414x736
Айпад - 1024 x 768.
Все в пойнтах.
А тут - сначала одно разрешение будет всегда, потом вот вам еще одно недоразрешение (ретина, которая улучшает четкость, но не изменяет физически размеры). Вам это слишком просто? А нате вам еще "ретина плюс один сантиметр". Что и этого мало? Нате вам еще ипадов и ифонов.
И из-за этой неопределенности имеем over9000 способов выделить нужное разрешение (и поведение в зависимости от него) - начиная с bounds и определения разрешения по модели и заканчивая autolayout и size classes. И все эти способы ущербны. Даже если рассматривать только последние технологии - storyboard и так уже перегружен элементами, а с size classes вообще превращается в ад
плюсану тому, кто найдет
или вообще:
А поскольку выдает информацию в точках, то все равно придется проверять что-то еще, потому что повторяя высказавшегося выше - у 4/4s тоже размер 480
А это не одно и то же?
А если айфун набок повёрнут?