Các mã sau đây có thể được sử dụng để có được bounds
, coordinateSpace
, nativeScale
và scale
, tức là trên một chiếc iPhone 6 Plus nativeScale
là 2,608 và khi thiết bị trong chạy trong chế độ thu nhỏ cho nó là 2,88 (lưu ý rằng nó là khác nhau trong mô phỏng):
UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
Mã để phát hiện iPhone 6 Plus:
-(BOOL)iPhone6PlusDevice{
// Scale is 3 currently only for iPhone 6 Plus
if ([UIScreen mainScreen].scale > 2.9) return YES;
return NO;
}
hoặc
-(BOOL)iPhone6PlusUnZoomed{
if ([self iPhone6PlusDevice]){
if ([UIScreen mainScreen].bounds.size.height > 720.0) return YES; // Height is 736, but 667 when zoomed.
}
return NO;
}
Lưu ý: Nếu bạn đang kiểm tra iPhone 6 Plus, để điều chỉnh giao diện người dùng, đừng dựa vào .nativeScale
, vì trình mô phỏng và thiết bị thực tế cho kết quả khác nhau.
Nguồn
2014-09-21 21:46:00
này đã làm việc cho tôi! Chỉ cần thêm mainScreen(). "UIScreen.mainScreen(). NativeScale". Rất hữu ích khi tải hình ảnh từ dịch vụ web theo chiều rộng và chiều cao của chúng và vào chế độ xem hình ảnh: D – nmdias