美文网首页征服iOS
iOS 11 SDK新特性

iOS 11 SDK新特性

作者: sensencoder | 来源:发表于2017-06-10 23:06 被阅读3289次

    WWDC 2017 刚过去不久,新增了一些好东西,特别在硬件方面,在软件方面也有一些需要我们知道的东西,自己就怀着好奇心下载了 Xcode9.0-beta版本和手机版iOS 11,体验了几天内有几点自己的看法。

    1. Xcode9-beta版本比之前的beta 版本较稳定,在体验上还是比较满意的。
    2. 新改变的模拟器风格还是比较好看的,但是切换不同模拟器的时候之前打开的模拟器不会关闭,如打开很多模拟器 command + q退出的话就一键退出了,比较不喜欢。
    3. iOS 11 beta 版本(iPhone 6 Plus)用起来比较卡顿,切换应用的时候会出现闪动。在大屏上字体超大。
    4. 实际项目中存在着各种各样的bug,将在本文最后做些介绍。
      在苹果官网上其实已经有本次大会所新增的东西,不管是硬件方面还是软件方面,有兴趣的同学可以去体验下。苹果开发者文档
      新增框架
      Core ML : 作为机器学习模型转换为 iOS 可以开发的方式。
      ARKit :iOS 11 SDK 新增框架。
      Xcode 编译器
      Swift在OC和Swift混编上,编译器运行速度有点慢,但是Xcode9 编译速度上有所提升。在其中的编译器上进行了重写,支持了对 Swift 代码的重构,使用Swift重写的,并添加了GitHub的集成。如图所示:
      从左侧可以看出GitHub上主次分支,右侧分支代码提交的详细信息,开发者可以较快浏览项目进度。

    自定义NameColor
    在 Assets.xcassets 图片管理可以自定义颜色,在xib 或者storyboard选择颜色的时候可以看到自己自定义的 NameColor 如图所示:

    Navigation Title
    Navigation Title (iOS 11 之后) 采用了新的设计,放大了字体,prefersLargeTitles为true即可。
    拖拽功能
    UITextView,UITextField,UICollectionView,UITableView 支持原生拖拽。具体参考 苹果API
    Other Bug
    ps:iOS 11适配可参考简书App适配iOS 11,可以解决这些bug。感谢 @爱睡觉的蘑菇的分享
    在使用 xcode9.0 - beta 版本发现一些不正常的小 “错误”:

    1. 自定义 Navigation Bar 返回按钮,space.width = -20 负号失效,如以下用法:
     UIButton *gradeRuleButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [gradeRuleButton setImage:[UIImage imageNamed:@"gradeRule"] forState:UIControlStateNormal];
        gradeRuleButton.frame = CGRectMake(0,0, 40, 40);
        gradeRuleButton.backgroundColor = [UIColor yellowColor];
        gradeRuleButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
        [gradeRuleButton addTarget:self action:@selector(gradeButtonAction:) forControlEvents:UIControlEventTouchUpInside];
        
        UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:gradeRuleButton];
        UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
        space.width = - 20;  此处 -20将失效为0
        self.navigationItem.leftBarButtonItems = @[space,leftBarButtonItem];
    
    1. UITableView Group模式下,分区的时候,若设置某一区高度为固定值10,只需执行以下代码即可:
    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
         return 10;
    }
    
    

    在新编译器还必须执行以下自定义HeaderView方法才可生效。

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
        UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 10)];
        header.backgroundColor = [UIColor redColor];
        return header;
    }
    
    

    参考链接:王巍(喵神)

    相关文章

      网友评论

        本文标题:iOS 11 SDK新特性

        本文链接:https://www.haomeiwen.com/subject/arvcqxtx.html