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
这里苹果也没展开具体说 API 怎么用,只是列了一下让一个 customView 支持 drag 和 drop 分别要实现什么。
- Drop
- Drag
我这里也就不展开去写 demo 了,等后面四个 session 一起来玩一下这个 API。
File ManageMent
由于 iOS 11 苹果给了一个新的 app —— files。
苹果很大方的把 files 的 view controller 拿出来给大伙儿用。
这个东西看起来不起眼,然而他具有高度的可定制性;可以访问本地文件或者云盘文件.
具体详细介绍,见:
UI Refinements
NavigationBar
iOS 11 在 UIKit 上最明显的变化就是 WinPhone 样子的 NavigationBar 了。
NavigationBar 的 title 支持了大字模式。
再滚上去之后,就又会变成我们熟悉的 title
而开启大字模式,仅需这两个 API
可以看最上面那张效果图里的 Message 的 navigaitonbar,它内置了搜索框。我们通过这样的代码也可以启用它:
然后,苹果居然把 RefreshControl 也坐进去了。。。
苹果据说这个 feature 你若是用了 大字模式 + UIRefreshControl。这个是自动实现的。
于是乎坑爹的地方开始了:
这个东西是 NavigationBar......高度变了,变厚了好多。于是我们当初若谁图省事用 44 来拿高度的,全都会挂出去。
苹果给了一个新的 API,来标记这块可变区域
SafeAreaInsets,也不知道谁想出来的名字。
对应的代码是这样的:
然后苹果自豪的说,UIScrollview 能帮你自动完成很多适配问题。你甚至不需要写一行代码。
当然不能 100% 保证,如果你想自己 handle。你可以通过修改这些 API:
长成这模样的 API 大家应该很熟悉吧。当初 iOS 7 开始变成全屏模式之后,也有个类似的东西。用不好就会 app 上面顶出来 64px 的空白区域。
所以我个人觉得,不要对这个 api 抱有太大希望。
以及事实上确实如此,我成功用 xcode 9 把礼物说跑起来了,兼容性问题出现最大的地方就是 navigationbar 的行为问题。
TableView
TableView 的修改,可以参考 Mail App,多加了一些 Cell 的侧滑手势:
实现起来蛮容易的,且 UIKit 自动帮你完成很多事情:
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 也变得安全了。
- block-based KVO
既然 KeyPath 被翻新了,苹果就顺路把 KVO 也收拾了
代码比以前简洁太多了。
UIKit
- preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge
UIViewController 的一个 method,用来 defer 系统的各种手势,例如上边缘下滑唤出 notificationCenter,提升用户体验。
- AutoLayout and ScrollView
ScrollView 添加了两个 layoutGuide:ContentLayoutGuide 和 frameLayoutGuide 来帮助我们解决 ScrollView 上加 Autolayout 的问题,真是激动人心,然而我们国内开发者没法用
- dynamic type
在过去,如果我们想支持大字模式的话。我们需要用 UIFont 的 preferredFont Api,然而国内开发者们很少用。因为我们设计师用的兰亭细黑之类的,特殊字体。
新的 API 就愉快多了:
甚至可以这样:
于是 Autolayout 也添加了相关的功能,毕竟布局是整体的,当字号跟着变大了,行距之类的都要进行调整。
这个 feature 同样适用于 VFL 和 UIStackView
Password autofill
强行借鉴 1Password
Asset Catalogs
- 可以用命名 color 了,比如直接 themeColor,而不用更像之前那样需要自己写 Enum
- PDF 的图片可以根据 dynamicType 进行缩放
- Tabbar 在大字模式下 会有按住显示 tabbar 内容的 feature。如果你用了 PDF 的图片,体验会好很多。
ProMotion 刷新率
因为 iPad Pro 120FPS,所以 UIScreen 提供了获取设备最大的刷新率的 API。我们可以根据自己的 app,动态调整刷新率。
以上所述就是小编给大家介绍的《WWDC 201 What's new in cocoa touch》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!