Last active
July 9, 2021 09:07
-
-
Save mahmudahsan/bcc1272433e38f1efd3c2389c75cd00f to your computer and use it in GitHub Desktop.
iPhone X and other iOS device detection by Swift and Objective-C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
struct Device { | |
// iDevice detection code | |
static let IS_IPAD = UIDevice.current.userInterfaceIdiom == .pad | |
static let IS_IPHONE = UIDevice.current.userInterfaceIdiom == .phone | |
static let IS_RETINA = UIScreen.main.scale >= 2.0 | |
static let SCREEN_WIDTH = Int(UIScreen.main.bounds.size.width) | |
static let SCREEN_HEIGHT = Int(UIScreen.main.bounds.size.height) | |
static let SCREEN_MAX_LENGTH = Int( max(SCREEN_WIDTH, SCREEN_HEIGHT) ) | |
static let SCREEN_MIN_LENGTH = Int( min(SCREEN_WIDTH, SCREEN_HEIGHT) ) | |
static let IS_IPHONE_4 = IS_IPHONE && SCREEN_MAX_LENGTH <= 480 // 2, 3, 3GS, 4, 4S | |
static let IS_IPHONE_5 = IS_IPHONE && SCREEN_MAX_LENGTH == 568 // 5, 5S, 5C, SE | |
static let IS_IPHONE_6 = IS_IPHONE && SCREEN_MAX_LENGTH == 667 // 6, 6S, 7, 8 | |
static let IS_IPHONE_6P = IS_IPHONE && SCREEN_MAX_LENGTH == 736 // 6+, 6S+, 7+, 8+ | |
static let IS_IPHONE_XS = IS_IPHONE && SCREEN_MAX_LENGTH == 812 // X, XS, 11 Pro | |
static let IS_IPHONE_XS_MAX = IS_IPHONE && SCREEN_MAX_LENGTH == 896 // XR, XS Max, 11, 11 Pro Max | |
static let IS_IPAD_PRO_11 = IS_IPAD && SCREEN_MAX_LENGTH == 1024 // iPad Pro 11" | |
static let IS_IPAD_PRO_13 = IS_IPAD && SCREEN_MAX_LENGTH == 1366 // iPad Pro 12.9" | |
} | |
if (Device.IS_IPHONE_X){ | |
//iPhone X | |
} |
static let IS_IPHONE_X_OR_XS = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 812.0
static let IS_IPHONE_XR_OR_XS_MAX = UIDevice.current.userInterfaceIdiom == .phone && ScreenSize.SCREEN_MAX_LENGTH == 896.0
static let IS_IPHONE_4 = IS_IPHONE && SCREEN_MAX_LENGTH <= 480 // 2, 3, 3GS, 4, 4S
static let IS_IPHONE_5 = IS_IPHONE && SCREEN_MAX_LENGTH == 568 // 5, 5S, 5C, SE
static let IS_IPHONE_6 = IS_IPHONE && SCREEN_MAX_LENGTH == 667 // 6, 6S, 7, 8
static let IS_IPHONE_6P = IS_IPHONE && SCREEN_MAX_LENGTH == 736 // 6+, 6S+, 7+, 8+
static let IS_IPHONE_XS = IS_IPHONE && SCREEN_MAX_LENGTH == 812 // X, XS, 11 Pro
static let IS_IPHONE_XS_MAX = IS_IPHONE && SCREEN_MAX_LENGTH == 896 // XR, XS Max, 11, 11 Pro Max
Please update
Thank you, I updated.
static let IS_IPAD_PRO_11 = IS_IPAD && SCREEN_MAX_LENGTH == 1024 // iPad Pro 11"
static let IS_IPAD_PRO_13 = IS_IPAD && SCREEN_MAX_LENGTH == 1366 // iPad Pro 12.9"
Thank you Zwerge , I updated.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Please update IS_IPHONE_XR/XS/XS Max