iOS11-Adaptation 项目常见题目办理方案

打印 上一主题 下一主题

主题 813|帖子 813|积分 2443

iOS11-Adaptation 项目常见题目办理方案

    iOS11-Adaptation iOS11-Adaptation iOS 11 && iPhone X适配  
项目地址: https://gitcode.com/gh_mirrors/io/iOS11-Adaptation   
项目根本先容

iOS11-Adaptation 是一个专注于 iOS 11 和 iPhone X 适配的开源项目。该项目的主要目的是帮助开辟者办理在 iOS 11 和 iPhone X 上开辟应用时碰到的各种适配题目。项目的主要编程语言是 Objective-C,但也可能包含一些 Swift 代码。
新手使用项目时的留意事项

1. 安全区域适配题目

题目形貌:
在 iOS 11 中,苹果引入了 Safe Area Layout Guide 来替换之前的 Top Layout Guide 和 Bottom Layout Guide。如果开辟者没有精确适配 Safe Area,可能会导致界面元素被遮挡或布局错乱。
办理步骤:

  • 检查 Storyboard 或 XIB 文件:
    确保在 Storyboard 或 XIB 文件中,取消勾选 "Use Safe Area Layout Guide" 选项,特殊是在支持 iOS 8 及以下版本时。
  • 代码适配:
    如果项目中使用了自定义的 NavigationBar 或 TabBar,可以通过 additionalSafeAreaInsets 属性来调解 Safe Area 的值。例如:
    1. self.additionalSafeAreaInsets = UIEdgeInsetsMake(20, 0, 0, 0);
    复制代码
  • 监听 Safe Area 变化:
    在 UIView 或 UIViewController 中实现 safeAreaInsetsDidChange 或 viewSafeAreaInsetsDidChange 方法,以便在 Safe Area 发生变化时举行相应的调解。
2. UITableView 偏移题目

题目形貌:
在 iOS 11 中,UITableView 可能会出现莫名其妙的偏移,通常是 20pt 或 64pt。这是由于 iOS 11 弃用了 automaticallyAdjustsScrollViewInsets 属性,并引入了 contentInsetAdjustmentBehavior 属性。
办理步骤:

  • 设置 contentInsetAdjustmentBehavior:
    在代码中设置 contentInsetAdjustmentBehavior 属性,以避免 UITableView 出现偏移。例如:
    1. if (@available(iOS 11.0, *)) {
    2.     self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    3. }
    复制代码
  • 使用宏定义简化代码:
    可以通过定义宏来简化代码,例如:
    1. #define adjustsScrollViewInsets(scrollView) \
    2. do { \
    3.     if ([scrollView respondsToSelector:NSSelectorFromString(@"setContentInsetAdjustmentBehavior:")]) { \
    4.         NSMethodSignature *signature = [UIScrollView instanceMethodSignatureForSelector:@selector(setContentInsetAdjustmentBehavior:)]; \
    5.         NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature]; \
    6.         NSInteger argument = 2; \
    7.         [invocation setTarget:scrollView]; \
    8.         [invocation setSelector:@selector(setContentInsetAdjustmentBehavior:)]; \
    9.         [invocation setArgument:&argument atIndex:2]; \
    10.         [invocation invoke]; \
    11.     } \
    12. } while (0)
    复制代码
3. Masonry 布局适配题目

题目形貌:
如果项目中使用了 Masonry 举行布局,在 iOS 11 中须要特殊留意 Safe Area 的适配,否则可能会导致布局错乱。
办理步骤:

  • 检查 Masonry 版本:
    确保使用的 Masonry 版本支持 iOS 11 的 Safe Area 适配。
  • 适配 Safe Area:
    在 Masonry 布局代码中,使用 safeAreaInsets 举行适配。例如:
    1. if (@available(iOS 11.0, *)) {
    2.     [view mas_makeConstraints:^(MASConstraintMaker *make) {
    3.         make.edges.equalTo(self.view.safeAreaInsets);
    4.     }];
    5. } else {
    6.     [view mas_makeConstraints:^(MASConstraintMaker *make) {
    7.         make.edges.equalTo(self.view);
    8.     }];
    9. }
    复制代码
  • 测试不同设备:
    在不同的设备(如 iPhone X、iPhone 8 等)上测试布局,确保在不同屏幕尺寸和 Safe Area 下都能正常显示。
总结

iOS11-Adaptation 项目为开辟者提供了丰富的适配方案,帮助开辟者办理在 iOS 11 和 iPhone X 上开辟应用时碰到的各种题目。新手在使用该项目时,须要特殊留意 Safe Area 适配、UITableView 偏移题目以及 Masonry 布局适配题目,并按照上述步骤举行办理。
    iOS11-Adaptation iOS11-Adaptation iOS 11 && iPhone X适配  
项目地址: https://gitcode.com/gh_mirrors/io/iOS11-Adaptation   

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表