WWDC 201 What's new in cocoa touch

栏目: Objective-C · 发布时间: 7年前

内容简介:WWDC 201 What's new in cocoa touch

这是每年必看的一个 session,基本上是 iOS 的 API 更新的总章,会告诉你都有哪几个点的 feature。今年也不例外,苹果的着眼点是:

  • Productivity
  • UI refinements
  • API enhancement

Productivity

Drag and drop

这是今年的重头戏,非常强大。你可以在 照片 app 中选择多张图,然后拖入 email.app,他就成了 email 的附件。

苹果为了开发者能做好这方面的开发,准备了四讲 Session

WWDC 201 What's new in cocoa touch

这里苹果也没展开具体说 API 怎么用,只是列了一下让一个 customView 支持 drag 和 drop 分别要实现什么。

  • Drop
WWDC 201 What's new in cocoa touch
  • Drag
WWDC 201 What's new in cocoa touch

我这里也就不展开去写 demo 了,等后面四个 session 一起来玩一下这个 API。

File ManageMent

由于 iOS 11 苹果给了一个新的 app —— files。

苹果很大方的把 files 的 view controller 拿出来给大伙儿用。

WWDC 201 What's new in cocoa touch

这个东西看起来不起眼,然而他具有高度的可定制性;可以访问本地文件或者云盘文件.

具体详细介绍,见:

WWDC 201 What's new in cocoa touch

UI Refinements

NavigationBar

iOS 11 在 UIKit 上最明显的变化就是 WinPhone 样子的 NavigationBar 了。

WWDC 201 What's new in cocoa touch

NavigationBar 的 title 支持了大字模式。

再滚上去之后,就又会变成我们熟悉的 title

WWDC 201 What's new in cocoa touch

而开启大字模式,仅需这两个 API

WWDC 201 What's new in cocoa touch

可以看最上面那张效果图里的 Message 的 navigaitonbar,它内置了搜索框。我们通过这样的代码也可以启用它:

WWDC 201 What's new in cocoa touch

然后,苹果居然把 RefreshControl 也坐进去了。。。

WWDC 201 What's new in cocoa touch

苹果据说这个 feature 你若是用了 大字模式 + UIRefreshControl。这个是自动实现的。

于是乎坑爹的地方开始了:

WWDC 201 What's new in cocoa touch

这个东西是 NavigationBar......高度变了,变厚了好多。于是我们当初若谁图省事用 44 来拿高度的,全都会挂出去。

苹果给了一个新的 API,来标记这块可变区域

WWDC 201 What's new in cocoa touch

SafeAreaInsets,也不知道谁想出来的名字。

对应的代码是这样的:

WWDC 201 What's new in cocoa touch

然后苹果自豪的说,UIScrollview 能帮你自动完成很多适配问题。你甚至不需要写一行代码。

当然不能 100% 保证,如果你想自己 handle。你可以通过修改这些 API:

WWDC 201 What's new in cocoa touch

长成这模样的 API 大家应该很熟悉吧。当初 iOS 7 开始变成全屏模式之后,也有个类似的东西。用不好就会 app 上面顶出来 64px 的空白区域。

所以我个人觉得,不要对这个 api 抱有太大希望。

以及事实上确实如此,我成功用 xcode 9 把礼物说跑起来了,兼容性问题出现最大的地方就是 navigationbar 的行为问题。

TableView

TableView 的修改,可以参考 Mail App,多加了一些 Cell 的侧滑手势:

WWDC 201 What's new in cocoa touch

实现起来蛮容易的,且 UIKit 自动帮你完成很多事情:

WWDC 201 What's new in cocoa touch

API enhancement

Swift4 And Foundation

  • Codable protocol

这个东西还是蛮强大的,你只需要在 enum/struct/class 上实现 codable 这个协议,默认的 protocol extension 就能帮你完成 NSCoding/JSON/Plist 的序列化与反序列化。

但事实上吧...并没有那么智能,他有点像 Android 的 Gson 库。仅支持 key 和 property 一一对应。如果不对应的话,还是要手动实现的。

不过怎么说还是比原来用 SwiftyJSON 实现起来优雅多了。

  • KeyPath

苹果越发的让代码变得更安全,在 OC 的历史包袱上,我们知道 selector、valueForKeyPath 之类的东西全都是用字符串来描述的。

这类东西没有补全,写起来很容易出问题。Swift 3 攻克了 Selector 的问题,Swift 4 让 KeyPath 也变得安全了。

WWDC 201 What's new in cocoa touch
  • block-based KVO

既然 KeyPath 被翻新了,苹果就顺路把 KVO 也收拾了

WWDC 201 What's new in cocoa touch

代码比以前简洁太多了。

UIKit

  • preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge

UIViewController 的一个 method,用来 defer 系统的各种手势,例如上边缘下滑唤出 notificationCenter,提升用户体验。

  • AutoLayout and ScrollView

ScrollView 添加了两个 layoutGuide:ContentLayoutGuide 和 frameLayoutGuide 来帮助我们解决 ScrollView 上加 Autolayout 的问题,真是激动人心,然而我们国内开发者没法用

  • dynamic type

在过去,如果我们想支持大字模式的话。我们需要用 UIFont 的 preferredFont Api,然而国内开发者们很少用。因为我们设计师用的兰亭细黑之类的,特殊字体。

新的 API 就愉快多了:

WWDC 201 What's new in cocoa touch

甚至可以这样:

WWDC 201 What's new in cocoa touch

于是 Autolayout 也添加了相关的功能,毕竟布局是整体的,当字号跟着变大了,行距之类的都要进行调整。

WWDC 201 What's new in cocoa touch

这个 feature 同样适用于 VFL 和 UIStackView

WWDC 201 What's new in cocoa touch

Password autofill

强行借鉴 1Password

WWDC 201 What's new in cocoa touch

Asset Catalogs

  • 可以用命名 color 了,比如直接 themeColor,而不用更像之前那样需要自己写 Enum
  • PDF 的图片可以根据 dynamicType 进行缩放
  • Tabbar 在大字模式下 会有按住显示 tabbar 内容的 feature。如果你用了 PDF 的图片,体验会好很多。
WWDC 201 What's new in cocoa touch

ProMotion 刷新率

因为 iPad Pro 120FPS,所以 UIScreen 提供了获取设备最大的刷新率的 API。我们可以根据自己的 app,动态调整刷新率。


以上所述就是小编给大家介绍的《WWDC 201 What's new in cocoa touch》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Blog Design Solutions

Blog Design Solutions

Richard Rutter、Andy Budd、Simon Collison、Chris J Davis、Michael Heilemann、Phil Sherry、David Powers、John Oxton / friendsofED / 2006-2-16 / USD 39.99

Blogging has moved rapidly from being a craze to become a core feature of the Internetfrom individuals sharing their thoughts with the world via online diaries, through fans talking about their favori......一起来看看 《Blog Design Solutions》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具