iOS13 (四)双指、三指手势
一、双指滑动编辑
a、相关代码
// 允许多选
self.tableView.allowsMultipleSelectionDuringEditing = YES;
// 实现UITableViewDelegate的两个代理
/// iOS13是否允许多指选中
-(BOOL)tableView:(UITableView *)tableView shouldBeginMultipleSelectionInteractionAtIndexPath:(NSIndexPath *)indexPath{
returnYES;
}
/// iOS13多指选中开始,这里可以做一些UI修改,比如修改导航栏上按钮的文本
-(void)tableView:(UITableView *)tableView didBeginMultipleSelectionInteractionAtIndexPath:(NSIndexPath *)indexPath {
// 最后当用户选择完,要做某些操作的时候,我们可以用 tableView.indexPathsForSelectedRows 获取用户选择的 rows。
}
b、可以自己添加一个开关,手动打开、关闭多选状态
// 打开多选
[self.tableViewsetEditing:YES animated:YES];
// 关闭多选
[self.tableViewsetEditing:NO animated:YES];
注意:如果点击cell有跳转效果,在多选状态的时候要暂时屏蔽跳转,关闭多选状态的时候再允许跳转,不然会有手势冲突
二、编辑手势 (三指手势)
复制:三指捏合
剪切:两次三指捏合
粘贴:三指松开
撤销:三指向左划动(或三指双击)
重做:三指向右划动
快捷菜单:三指单击
三只手指长按屏幕一秒钟,在顶部会出现一个灰色的编辑框,如果当前处于编辑状态,这个编辑框是实体的,从左到右分别是:撤回、剪切、复制、粘贴、恢复撤回
// 上述手势iOS13默认提供,如想禁用,重写editingInteractionConfiguration
override var editingInteractionConfiguration: UIEditingInteractionConfiguration {
return.none
}
注意:不管是三指手势还是顶部编辑框,都必须是编辑状态这些手势才有用,拷贝的时候必须先选中要拷贝的内容。
这些操作比较适合文章编辑或者聊天的时候输入一大段文字的沉浸式的业务场景,在大屏幕上操作会比较流畅,操作区域要在键盘以外的区域。
Demo:《截屏PDF长图、双三指手势》