- 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
guest 24.03.2015 08:08 # +1
TarasB 24.03.2015 11:46 # 0
Headless 24.03.2015 12:02 # 0
TarasB 24.03.2015 12:15 # +5
kegdan 24.03.2015 12:45 # +1
chtulhu 24.03.2015 19:29 # −1
Так что хотелось бы иметь такую инструкцию :)
guest 24.03.2015 19:32 # +3
chtulhu 24.03.2015 19:26 # 0
Gerchicov-bp 25.03.2015 10:19 # +1
kegdan 25.03.2015 10:55 # 0
Для говнокодера - да. Нормальные люди пишут код, который годен больше месяца
Gerchicov-bp 25.03.2015 11:47 # 0
Расскажешь почему именно ios 8?
Headless 25.03.2015 11:51 # +4
Кроме того, проверка изначально не верна, height = 480 был равен и на айфоне 3gs, и 3g, которые не имели ретина экранов.
Также на UIScreen есть проперти scale, в котором будет 2.0 или 3.0, если девайс ретина.
Ну а помимо всех перечисленных пунктов могу добавить, что этот код я встретил в десятке контроллеров этого легаси проекта.
Gerchicov-bp 25.03.2015 12:00 # 0
Scale? Ок, открываем документацию и читаем когда он появился. А после этого читаем когда появился bounds.
И дата 2014 кстати ни о чем не говорит. Ты лучше напиши, какую минимальную версию ios должно поддерживать приложение и iphone или ipad тоже?
Headless 25.03.2015 12:02 # 0
Scale - iOS 4.0. Deployment target проекта - iOS 7. iPhone only.
Gerchicov-bp 25.03.2015 12:03 # 0
Headless 25.03.2015 12:04 # 0
Gerchicov-bp 25.03.2015 12:09 # 0
Headless 25.03.2015 12:11 # 0
Если приложение запускается на айпаде мини(единственный не ретина девайс, оставшийся в природе), то 2x ассеты просто даунскейлятся.
Gerchicov-bp 25.03.2015 12:13 # 0
Headless 25.03.2015 12:14 # 0
Gerchicov-bp 25.03.2015 12:15 # 0
http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
Headless 25.03.2015 12:16 # 0
Gerchicov-bp 25.03.2015 12:17 # 0
Headless 25.03.2015 12:26 # 0
Айфоны - 320 x 480, 320 x 568, 375x667, 414x736
Айпад - 1024 x 768.
Все в пойнтах.
bormand 25.03.2015 12:31 # 0
Gerchicov-bp 25.03.2015 12:41 # +3
А тут - сначала одно разрешение будет всегда, потом вот вам еще одно недоразрешение (ретина, которая улучшает четкость, но не изменяет физически размеры). Вам это слишком просто? А нате вам еще "ретина плюс один сантиметр". Что и этого мало? Нате вам еще ипадов и ифонов.
И из-за этой неопределенности имеем over9000 способов выделить нужное разрешение (и поведение в зависимости от него) - начиная с bounds и определения разрешения по модели и заканчивая autolayout и size classes. И все эти способы ущербны. Даже если рассматривать только последние технологии - storyboard и так уже перегружен элементами, а с size classes вообще превращается в ад
chtulhu 25.03.2015 15:18 # +2
Gerchicov-bp 25.03.2015 11:51 # +3
плюсану тому, кто найдет
guest 25.03.2015 12:41 # +1
Gerchicov-bp 25.03.2015 12:42 # 0
volter9 25.03.2015 22:09 # 0
или вообще:
guest 25.03.2015 23:46 # 0
Gerchicov-bp 26.03.2015 09:30 # 0
А поскольку выдает информацию в точках, то все равно придется проверять что-то еще, потому что повторяя высказавшегося выше - у 4/4s тоже размер 480
guest 26.03.2015 09:47 # 0
А это не одно и то же?
bormand 26.03.2015 09:54 # 0
guest 26.03.2015 10:23 # +2
bormand 26.03.2015 10:32 # 0
bormand 26.03.2015 09:39 # +1
А если айфун набок повёрнут?
inkanus-gray 26.03.2015 12:59 # +1
kegdan 26.03.2015 17:43 # −2