博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iPad 分屏多任务: Slide Over & Split View
阅读量:6992 次
发布时间:2019-06-27

本文共 1491 字,大约阅读时间需要 4 分钟。

hot3.png

iPad 的分屏多任务是由iOS 9 开始引进的,共有2种方式,官方称为 "Slide Over" 和 Split View"。

Slide Over

输入图片说明

通过 "Slide Over",你无需离开当前使用的应用即可与另一应用进行交互,只需从屏幕右边缘向左轻扫,就可以看到你最近用过的支持多任务的应用。要切换右侧应用,只需要从屏幕右上方向下轻扫,就可以看到所有支持多任务的应用列表,轻点其中一个就可以开始使用了。

Split View

输入图片说明

通过 "Split View",你可以同时打开和使用2个应用。在 Slide Over 模式下,轻点和拖动应用分隔条,就可以切换到 Split View 模式。在横屏模式下可以切换到1:1对半分屏,以及1:2分屏;而在竖屏模式下只能切换到1:2分屏。

开发实现

接下来为我的应用 Color Tint 加入 "Slide Over & Split View" 的支持

  1. 打开Xcode工程设置,必须支持横竖屏4个方向 "Requires full screen":该应用是否需要全屏显示,必须关掉才能使用 "Slide Over & Split View" 模式 输入图片说明

  2. 使用 Size Class 和 Auto Layout 来实现布局 先看看官方的参考图: 输入图片说明输入图片说明

我的应用是用纯代码去实现的,但主要是UITableView和UICollectionView,本身就支持大小自适应,所以稍加修改就能适配了,比较简单,写的代码也比较少。

override func viewWillTransition(to size: CGSize, with coordinator:UIViewControllerTransitionCoordinator) {    //根据size来调整cell的高度, 决定cell是显示2张图片, 3张图片, 还是4张图片    self.tableView.reloadData()}​
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {    //根据size来调整UI的内容    self.updateUI(size: size)}

实现效果如下:

输入图片说明

输入图片说明

输入图片说明

在这里需要注意的是,在 "Slide Over & Split View"模式下,UIScreen.bounds 和 UIWindow.bounds 的尺寸大小是不一样的,UIScreen.bounds 是设备屏幕的大小,而 UIWindow.bounds 是应用的大小,所以 UIWindow.bounds 的大小有可能是 UIScreen.bounds 的 1/2 或 1/3

总结

UI 适配涉及到 AutoLayout,Storyboard, Size Class 等知识,这也是苹果主推的东西,以后肯定会成为主流。

但用 Storyboard + AutoLayout 有很明显的利弊: 好处是可视化,即见即所得,搭建UI方便,代码书写少;坏处是各种约束难维护,特别是多人协作的时候,容易出错,一旦拖动一个控件,可能就引起一系列连锁反应

是使用纯代码,还是使用Storyboard,目前主要还是看自己的喜好了。虽然我是纯代码的支持者,所有程序基本上都是用纯代码实现的,但深入理解这些知识还是很有必要的。

转载于:https://my.oschina.net/ilrrong/blog/805540

你可能感兴趣的文章
谈一谈mysql给我带来的中文乱码问题
查看>>
tomcat - main
查看>>
Using SVN in Android Studio
查看>>
C-rm模仿
查看>>
CCNA之四:RIPV1和EIGRP在不连续网络下的比较
查看>>
VMware克隆Centos6.5之后网卡修改方法
查看>>
SharePoint的一些基本操作
查看>>
Snagit 11使用心得
查看>>
Python做简单的验证码识别(ocr)
查看>>
用win7防止局域网内的ARP***
查看>>
【基础】 mysqldump 创建基于GTID的从库
查看>>
南方常见藤本
查看>>
Windows Server 2012 R2 VDI系列(五)—配置RDSH角色
查看>>
VBOX命令行创建虚拟机 及开启远程访问
查看>>
用批处理修改IP地址
查看>>
无线的规划(思路很重要 ,拿去忽悠人不错)
查看>>
ARM和嵌入式系统开发
查看>>
选择阿里云数据库HBase版十大理由
查看>>
大数据环境下数仓设计
查看>>
求1+2+…+n,要求不能使用乘除法、for、while、if、else...
查看>>