Доступ к представлению таблицы управления UIPanGestureRecognizer (_ :adingSwipeActionsConfigurationForRowAt :) - PullRequest
0 голосов
/ 25 октября 2018

Я использую новые методы iOS 11 tableView(_:leadingSwipeActionsConfigurationForRowAt:) и tableView(_:trailingSwipeActionsConfigurationForRowAt:) для добавления смахивающих действий в строки ячеек таблицы.Мне нужны дополнительные анимации, связанные с этим жестом панорамирования.Как я могу получить доступ к распознавателю жестов, который, как я предполагаю, управляет этими методами?

Вот некоторый соответствующий код:

func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {

    //
    // I WANT TO DO SOME ANIMATION STUFF WITH THE PAN GESTURE RECOGNIZER HERE
    //

    let item = coreData.listResultsController.object(at: indexPath)
    let action = UIContextualAction(style: .normal, title: "Quantity", handler: { (action, view, completionHandler) in
        print("Show count now")
    })
    let sortOrder = item.category?.sortOrder ?? 0
    action.backgroundColor = UIColor.OMGColors.section[sortOrder]
    action.image = UIGraphicsImageRenderer(size: CGSize(width: 30, height: 30)).image { _ in
        guard let image = UIImage(named:"Pound Sign") else {
            return
        }
        image.draw(in: CGRect(x: 0, y: 0, width: 30, height: 30))

    }
    let configuration = UISwipeActionsConfiguration(actions: [action])
    return configuration

}

Можно ли вообще получить доступ к распознавателю панорамирования здесь илимне нужно прекратить использовать tableView(_:leadingSwipeActionsConfigurationForRowAt:) и tableView(_:trailingSwipeActionsConfigurationForRowAt:) и свернуть свои собственные, чтобы у меня был доступ?

1 Ответ

0 голосов
/ 25 октября 2018

Вы можете получить к ним доступ, но, к сожалению, я не уверен, что это вам сильно поможет.

Вы найдете их в свойстве gestureRecognizers таблицы, как и в любом другом распознавателе жестов.

Тем не менее, это пользовательский подкласс UIPanGestureRecognizer, который, кажется, является частным API:

_UISwipeActionPanGestureRecognizer

Вы можете привести к UIPanGestureRecognizer, но это не рекомендуется делать, так как этот классявляется недокументированным приватным API;эти вещи могут меняться без предупреждения между версиями iOS, и Apple все равно не нравится, что вы делаете подобные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...