如何创建UIBarButton使用斯威夫特调用UITapGestureRecognizer功能?

问题描述 投票:1回答:1

我的情况,我想实现UIBarButton点击空两个functions打电话。下面的代码已经工作了view tab and pan但现在我改变按钮点击下面两个函数调用。如何修改下面code

@objc
    func handleCardTap(recognzier:UITapGestureRecognizer) {
        switch recognzier.state {
        case .ended:
            animateTransitionIfNeeded(state: nextState, duration: 0.9)
        default:
            break
        }
    }

    @objc
    func handleCardPan (recognizer:UIPanGestureRecognizer) {
        switch recognizer.state {
        case .began:
            startInteractiveTransition(state: nextState, duration: 0.9)
        case .changed:
            let translation = recognizer.translation(in: self.cardViewController.handleArea)
            var fractionComplete = translation.y / cardHeight
            fractionComplete = cardVisible ? fractionComplete : -fractionComplete
            updateInteractiveTransition(fractionCompleted: fractionComplete)
        case .ended:
            continueInteractiveTransition()
        default:
            break
        }

    }
ios swift uibarbuttonitem uitapgesturerecognizer
1个回答
0
投票

如果您需要从UIBarButtonItem调用这两个点触手势识别功能,最好的方法是创建一个自定义视图栏按钮项目,并添加手势识别该自定义视图。像这样的东西会工作:

let tapGestureView = UIView() // initialize & size this as you need
tapGestureView.addGestureRecognizer(UITapGestureRecognizer(action: #selector(handleCardTap(_:)), target: self))
tapGestureView.addGestureRecognizer(UITapGestureRecognizer(action: #selector(handleCardPan(_:)), target: self))
let barButton = UIBarButtonItem(customView: tapGestureView)

下面是UITapGestureRecognizersUIBarButtonItems一些额外的资源。这似乎有点奇怪设置2个不同的轻敲姿势在同样的看法,虽然,(至少名字),他们是一个泛的一个动作似乎很奇怪,但是这是你将怎样实现这一目标!

© www.soinside.com 2019 - 2024. All rights reserved.