В приложении iPhone, при запуске приложения на устройстве. Как определить разрешение экрана устройства, на котором запущено приложение?
130
В приложении iPhone, при запуске приложения на устройстве. Как определить разрешение экрана устройства, на котором запущено приложение?
CGRect screenBounds = [[UIScreen mainScreen] bounds];
Это даст вам полное разрешение экрана в пунктах, поэтому для iPhone это обычно будет 320x480. Несмотря на то, что iPhone4 имеет гораздо больший размер экрана, iOS по-прежнему возвращает 320x480 вместо 640x960. Это в основном из-за взлома старых приложений.
CGFloat screenScale = [[UIScreen mainScreen] scale];
Это даст вам масштаб экрана. Для всех устройств, которые не имеют дисплеев Retina, это вернет 1.0f, в то время как устройства Retina Display дадут 2.0f, а iPhone 6 Plus (Retina HD) даст 3.0f.
Теперь, если вы хотите получить ширину и высоту экрана устройства iOS, вам нужно сделать одну простую вещь.
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
Умножая на масштаб экрана, вы получаете фактическое разрешение в пикселях.
Хорошее чтение о разнице между точками и пикселями в iOS можно прочитать здесь .
РЕДАКТИРОВАТЬ: (Версия для Swift)
let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)
Класс UIScreen позволяет найти разрешение экрана в точках и пикселях.
Разрешение экрана измеряется в точках или пикселях. Это никогда не следует путать с размером экрана. Меньший размер экрана может иметь более высокое разрешение.
'Bounds.width' UIScreen возвращает прямоугольный размер в точках
«NativeBounds.width» UIScreen возвращает прямоугольный размер в пикселях. Это значение определяется как PPI (точка на дюйм). Показывает четкость и четкость изображения на устройстве.
Вы можете использовать класс UIScreen, чтобы обнаружить все эти значения.
Swift3
Приставка
Swift 2.x
ObjectiveC
источник
Используйте его в App Delegate: я использую раскадровку
источник
Для iOS 8 мы можем просто использовать это
[UIScreen mainScreen].nativeBounds
, вот так:источник
См. Справку по UIScreen: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html.
источник
NSLog(@"%f",[[UIScreen mainScreen] scale]);
Используйте этот код, он поможет получить разрешение экрана любого типа устройства.
источник