开发中总结

  • 1、判断是不是iOS11
    oc

    if (@available(iOS 11.0, *)) {
          _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
          
          _tableView.estimatedRowHeight = 0;
          _tableView.estimatedSectionHeaderHeight = 0;
          _tableView.estimatedSectionFooterHeight = 0;
      }
    

swift

if #available(iOS 11.0, *) {
        self.tableView.contentInsetAdjustmentBehavior = .never
    } else {
        self.automaticallyAdjustsScrollViewInsets = false
    }
  • 2、iOS 学习必备的开源项目及库
    *3 声明属性编译器默认会给我们生成对应的私有成员变量,其实属性就是私有成员变量+getter+setter罢了;
    这里我们不考虑幺蛾子情况,比如声明了两个属性year和month,你又写了这样的代码@synthesize year =
    month;那么不好意思,这样的话编译器不会生成_month和_year成员变量了,也不会生成month的getter和setter方法,只会生成一个month成员变量和year的getter和setter方法,操作self.year
    就相当于操作了month成员变量;
    4、别再用 CD 切换目录了

    5、iOS小技巧总结,绝对有你想要的
    6、判断iPhone的尺寸
    开发中总结_第1张图片
    JcCJp.png
#define IS_IPHONE        (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_4      (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 480.0)
#define IS_IPHONE_5      (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6      (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
#define IS_IPHONE_6PLUS  (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f)
#define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)
#define IS_IPHONE_X      (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 812.0)
#define IS_IPHONE_XS      (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 812.0)
#define IS_IPHONE_X_MAX      (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 896.0)
#define IS_RETINA        ([[UIScreen mainScreen] scale] >= 2.0) // 3.0 for iPhone X, 2.0 for others
#define IS_IPAD_DEVICE   [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"]

iPhoneXs iPhoneXs Max iPhoneXr 界面适配
iPhoneXS、XS Max与iPhoneXR 适配
Xcode10 暨iPhoneXS,iPhoneXS Max,iPhoneXR适配小结

你可能感兴趣的:(开发中总结)