0

我有以下场景,需要帮助来解决场景中的棘手情况

  1. 有一个 Xcode 项目,目前正在使用EzSwipeController在三个视图控制器之间滑动(分页效果)。

  2. 在我的第一个 ViewController 中(这个 viewController 是从我的自定义动态框架中获取的,作为我的要求的一部分) -

获取 ViewController 的代码:

    userProfile.createProfileUI(userSession!) { result in
        switch result {
        case let .Success(profileViewController):

        myDetailsVC = profileViewController  //myDetailsVc is passed to EZSwipControllerDataSource array

        default:
            break
        }
    }
  1. 其他两个 ViewController 在我的项目故事板中

问题 -

在第一个 ViewController 中,有一个 tableView 为几个单元格(电话号码)启用了 canEditRowAtIndexPath。

因此,当我尝试滑动该行时,EZSwipeController 首先响应,因此我无法编辑该行。

这是正在发生的事情 - http://recordit.co/SOJgdeYchP

这是应该发生的事情 - http://recordit.co/EBPSbjH31q

我该如何处理这个问题?当我尝试编辑行时,有没有办法可以覆盖默认的滑动控制器操作?

请帮忙!

4

1 回答 1

0

将滑动手势识别器附加到层次结构中的父级。

如果您使用的是 UITableViewController,请将其替换为内部带有 UITableView 的 UIViewController。然后只需将手势识别器拖到 Storyboard 中的视图控制器上,它就会附加到 UIViewController 的内容视图而不是 UITableView。

尽管归根结底,这本质上是一种有缺陷的方法,因为只有在页面上没有任何元素也具有滑动手势的情况下,才能在应用程序中滑动翻页。如果你这样做了,即使你编写了一个变通方法来使视图控制器中的元素(在本例中为表格视图单元格)的手势识别器触发而不是页面翻转滑动手势,这也会产生不一致的用户体验。

我的建议:不要完全为这样的表单使用表格视图。除了上述机械 UX 问题之外,从用户感知的角度来看,没有任何迹象表明这是一个表格视图,而不仅仅是一个滚动视图,因此没有任何迹象表明用户可以使用滑动操作(删除)。改用滚动视图,并采用不同的方法来删除(删除始终可见的按钮,删除仅在用户点击某处编辑后可见的按钮等)。

于 2017-02-08T07:07:33.147 回答