From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYCategories/YYCategories/UIKit/UIScreen+YYAdd.m | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 176 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIScreen+YYAdd.m b/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIScreen+YYAdd.m new file mode 100755 index 0000000..a0b0255 --- /dev/null +++ b/screendisplay/Pods/YYCategories/YYCategories/UIKit/UIScreen+YYAdd.m @@ -0,0 +1,176 @@ +// +// UIScreen+YYAdd.m +// YYCategories <https://github.com/ibireme/YYCategories> +// +// Created by ibireme on 13/4/5. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "UIScreen+YYAdd.h" +#import "YYCategoriesMacro.h" +#import "UIDevice+YYAdd.h" + +YYSYNTH_DUMMY_CLASS(UIScreen_YYAdd); + + +@implementation UIScreen (YYAdd) + ++ (CGFloat)screenScale { + static CGFloat screenScale = 0.0; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + if ([NSThread isMainThread]) { + screenScale = [[UIScreen mainScreen] scale]; + } else { + dispatch_sync(dispatch_get_main_queue(), ^{ + screenScale = [[UIScreen mainScreen] scale]; + }); + } + }); + return screenScale; +} + +#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED +- (CGRect)currentBounds { + return [self boundsForOrientation:[[UIApplication sharedApplication] statusBarOrientation]]; +} +#endif + +- (CGRect)boundsForOrientation:(UIInterfaceOrientation)orientation { + CGRect bounds = [self bounds]; + + if (UIInterfaceOrientationIsLandscape(orientation)) { + CGFloat buffer = bounds.size.width; + bounds.size.width = bounds.size.height; + bounds.size.height = buffer; + } + return bounds; +} + +- (CGSize)sizeInPixel { + CGSize size = CGSizeZero; + + if ([[UIScreen mainScreen] isEqual:self]) { + NSString *model = [UIDevice currentDevice].machineModel; + + if ([model hasPrefix:@"iPhone"]) { + if ([model isEqualToString:@"iPhone7,1"]) return CGSizeMake(1080, 1920); + if ([model isEqualToString:@"iPhone8,2"]) return CGSizeMake(1080, 1920); + if ([model isEqualToString:@"iPhone9,2"]) return CGSizeMake(1080, 1920); + if ([model isEqualToString:@"iPhone9,4"]) return CGSizeMake(1080, 1920); + } + if ([model hasPrefix:@"iPad"]) { + if ([model hasPrefix:@"iPad6,7"]) size = CGSizeMake(2048, 2732); + if ([model hasPrefix:@"iPad6,8"]) size = CGSizeMake(2048, 2732); + } + } + + if (CGSizeEqualToSize(size, CGSizeZero)) { + if ([self respondsToSelector:@selector(nativeBounds)]) { + size = self.nativeBounds.size; + } else { + size = self.bounds.size; + size.width *= self.scale; + size.height *= self.scale; + } + if (size.height < size.width) { + CGFloat tmp = size.height; + size.height = size.width; + size.width = tmp; + } + } + return size; +} + +- (CGFloat)pixelsPerInch { + if (![[UIScreen mainScreen] isEqual:self]) { + return 326; + } + + static CGFloat ppi = 0; + static dispatch_once_t one; + static NSString *name; + dispatch_once(&one, ^{ + NSDictionary<NSString*, NSNumber *> *dic = @{ + @"Watch1,1" : @326, //@"Apple Watch 38mm", + @"Watch1,2" : @326, //@"Apple Watch 43mm", + @"Watch2,3" : @326, //@"Apple Watch Series 2 38mm", + @"Watch2,4" : @326, //@"Apple Watch Series 2 42mm", + @"Watch2,6" : @326, //@"Apple Watch Series 1 38mm", + @"Watch1,7" : @326, //@"Apple Watch Series 1 42mm", + + @"iPod1,1" : @163, //@"iPod touch 1", + @"iPod2,1" : @163, //@"iPod touch 2", + @"iPod3,1" : @163, //@"iPod touch 3", + @"iPod4,1" : @326, //@"iPod touch 4", + @"iPod5,1" : @326, //@"iPod touch 5", + @"iPod7,1" : @326, //@"iPod touch 6", + + @"iPhone1,1" : @163, //@"iPhone 1G", + @"iPhone1,2" : @163, //@"iPhone 3G", + @"iPhone2,1" : @163, //@"iPhone 3GS", + @"iPhone3,1" : @326, //@"iPhone 4 (GSM)", + @"iPhone3,2" : @326, //@"iPhone 4", + @"iPhone3,3" : @326, //@"iPhone 4 (CDMA)", + @"iPhone4,1" : @326, //@"iPhone 4S", + @"iPhone5,1" : @326, //@"iPhone 5", + @"iPhone5,2" : @326, //@"iPhone 5", + @"iPhone5,3" : @326, //@"iPhone 5c", + @"iPhone5,4" : @326, //@"iPhone 5c", + @"iPhone6,1" : @326, //@"iPhone 5s", + @"iPhone6,2" : @326, //@"iPhone 5s", + @"iPhone7,1" : @401, //@"iPhone 6 Plus", + @"iPhone7,2" : @326, //@"iPhone 6", + @"iPhone8,1" : @326, //@"iPhone 6s", + @"iPhone8,2" : @401, //@"iPhone 6s Plus", + @"iPhone8,4" : @326, //@"iPhone SE", + @"iPhone9,1" : @326, //@"iPhone 7", + @"iPhone9,2" : @401, //@"iPhone 7 Plus", + @"iPhone9,3" : @326, //@"iPhone 7", + @"iPhone9,4" : @401, //@"iPhone 7 Plus", + + @"iPad1,1" : @132, //@"iPad 1", + @"iPad2,1" : @132, //@"iPad 2 (WiFi)", + @"iPad2,2" : @132, //@"iPad 2 (GSM)", + @"iPad2,3" : @132, //@"iPad 2 (CDMA)", + @"iPad2,4" : @132, //@"iPad 2", + @"iPad2,5" : @264, //@"iPad mini 1", + @"iPad2,6" : @264, //@"iPad mini 1", + @"iPad2,7" : @264, //@"iPad mini 1", + @"iPad3,1" : @324, //@"iPad 3 (WiFi)", + @"iPad3,2" : @324, //@"iPad 3 (4G)", + @"iPad3,3" : @324, //@"iPad 3 (4G)", + @"iPad3,4" : @324, //@"iPad 4", + @"iPad3,5" : @324, //@"iPad 4", + @"iPad3,6" : @324, //@"iPad 4", + @"iPad4,1" : @324, //@"iPad Air", + @"iPad4,2" : @324, //@"iPad Air", + @"iPad4,3" : @324, //@"iPad Air", + @"iPad4,4" : @264, //@"iPad mini 2", + @"iPad4,5" : @264, //@"iPad mini 2", + @"iPad4,6" : @264, //@"iPad mini 2", + @"iPad4,7" : @264, //@"iPad mini 3", + @"iPad4,8" : @264, //@"iPad mini 3", + @"iPad4,9" : @264, //@"iPad mini 3", + @"iPad5,1" : @264, //@"iPad mini 4", + @"iPad5,2" : @264, //@"iPad mini 4", + @"iPad5,3" : @324, //@"iPad Air 2", + @"iPad5,4" : @324, //@"iPad Air 2", + @"iPad6,3" : @324, //@"iPad Pro (9.7 inch)", + @"iPad6,4" : @324, //@"iPad Pro (9.7 inch)", + @"iPad6,7" : @264, //@"iPad Pro (12.9 inch)", + @"iPad6,8" : @264, //@"iPad Pro (12.9 inch)", + }; + NSString *model = [UIDevice currentDevice].machineModel; + if (model) { + ppi = dic[name].doubleValue; + } + if (ppi == 0) ppi = 326; + }); + return ppi; +} + +@end -- Gitblit v1.8.0