热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11停止滑动UITableViewCell的默认行为

如何解决《iOS11停止滑动UITableViewCell的默认行为》经验,为你挑选了1个好方法。

在我的应用程序中,一个屏幕具有表格视图并在滑动时显示"编辑""删除"按钮UITableViewCell.

一切都运行良好,但问题是UITableViewCell在iOS 11 中的默认动画.

我知道iOS 11中的某些行为和基础已经改变.当您继续拉动您的单元格时,editActionsForRowAt自动调用方法.

有时它很好但是当你在桌子上添加了一个按钮时,然后看起来丑陋的行为.

请看下面,iOS 10和iOS 11中滑动单元格的默认行为.

iOS 10:

在此输入图像描述

iOS 11:

在此输入图像描述

你可以看到iOS 11我是否拉动然后自动editActionsForRowAt方法os调用并显示警告信息.

我的问题:有没有什么可以阻止这种iOS 11的行为和代码?

因为如果你的桌子有超过2个按钮,那么它看起来很难看.



1> Micah Wilson..:

这似乎做你想要的.然而,动画与iOS 10中的动画并不完全相同,但它消除了完全滑动,但仍然看起来不错.

@available(iOS 11.0, *)
func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

    let deleteAction = UIContextualAction.init(style: UIContextualAction.Style.destructive, title: "Delete", handler: { (action, view, completion) in
        //TODO: Delete
        completion(true)
    })

    let editAction = UIContextualAction.init(style: UIContextualAction.Style.normal, title: "Edit", handler: { (action, view, completion) in
        //TODO: Edit
        completion(true)
    })

    let cOnfig= UISwipeActionsConfiguration(actions: [deleteAction, editAction])

    config.performsFirstActiOnWithFullSwipe= false
    return config
}

关键线是config.performsFirstActiOnWithFullSwipe= false因为这将禁用完整滑动.

以上代码将func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath)在iOS 11上覆盖,但您editActionsforRowAt仍将用于子iOS 10设备.


推荐阅读
author-avatar
你是幸福的真光
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有