【问题标题】:iOS Swift: UIPanGestureRecognizer in UIScrollViewiOS Swift:UIScrollView 中的 UIPanGestureRecognizer
【发布时间】:2015-02-24 09:07:21
【问题描述】:

我有一个UIScrollView,它有 3 个页面(它们都包含一个单独的 UIContainerView,并且加载从第二页开始(这样你就可以向左或向右滑动)

我在第二个页面(在实际的 containerView 控制器中)添加了一个UIPanGestureRecogniser,因为我希望能够跟踪用户何时在此页面上向上或向下滑动。

我已经完成了这项工作,但这样做会禁用 scrollView 的滚动

这是我的代码:

let panRec = UIPanGestureRecognizer()

@IBOutlet var containerView: UIView!      // (second page container view)

override func viewDidLoad() {

    super.viewDidLoad()

    containerView.addGestureRecognizer(panRec)

    panRec.addTarget(self, action: "draggedView:")

}

func draggedView(sender:UIPanGestureRecognizer){

    var translation = sender.translationInView(self.view)


    if(translation.y > 100)
    {
        NSNotificationCenter.defaultCenter().postNotificationName("showExtras", object:nil)
    }

    if(translation.y < -100)
    {
        NSNotificationCenter.defaultCenter().postNotificationName("hideExtras", object:nil)
    }



}

希望有人可以滚动滚动视图,但也可以使用平移手势进行垂直滑动?

任何帮助将不胜感激!

谢谢, 戴夫

【问题讨论】:

    标签: ios swift uiscrollview uigesturerecognizer


    【解决方案1】:

    您需要给泛识别器一个委托,然后返回trueshouldRecogniseSimultaneouslyWith...

    您可能还需要对滚动视图的平移识别器执行相同操作,该识别器可作为属性使用。

    或者,向滚动视图的平移识别器添加另一个目标/动作(使用 addTarget(_, action:) 而不是自己创建。

    【讨论】:

    • 有效! (虽然有时向左或向右滑动而不是向上或向下滑动......但我很确定那只是我的代码不是那么好!)谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多