2012-03-04 122 views
2

我有一个UIScrollView,我需要能够滚动。同时,我需要检测滚动视图上的点击。我怎样才能做到这一点?UIScrollView检测水龙头

我已经尝试添加一个TapGestureRecognizer视图没有任何运气。还尝试了使用UIScrollViewDelegate方法的几种方法。

UIScrollView中有MPMoviePlayerController视图。

我用下面的代码添加reconigzer

UITapGestureRecognizer *singleTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)] autorelease]; 
singleTap.enabled = YES; 
singleTap.cancelsTouchesInView = NO; 

[scrollView addGestureRecognizer:singleTap]; 

感谢。

回答

0

解决方案:将MPMoviePlayerController视图添加到UIScrollView时,需要禁用MpMoviePlayerController视图上的用户交互,以便UIScrollView能够捕获手势识别器。此解决方案ofc仅适用于不希望使用mpmovieplayercontrollers默认菜单等进行交互时。

1

尝试在滚动视图中添加视图并添加手势识别器和其他视图。

+0

你的反应是不是正确的解决方案,但是,它导致我来吧。当我在scrollview中添加mp-view时,我必须禁用mpmovieplayercontroller上的userinteraction以处理该手势。 – Kenneth 2012-03-04 19:38:11

+0

然后让您的解决方案成为答案并接受它作为正确的答案。 – dasdom 2012-03-05 07:41:33

0

您可以在UIScrollView中捕获任何类型的手势。确保你也处理一些默认属性,就像设置cancelsTouchesInView属性为false,默认情况下是true。还给你的子视图标记号以区分选择器。 &也使他们的用户交互为真。

例如。我加入我的滚动视图的形象图,我实现了用户交互以及我也更新其内容的大小,

{ 
      //adding images to the scroll view 
      for i in 0 ..< 4 { 
      let image = UIImage(named: "img\(i).png") 
      let imageView = UIImageView(image: image) 
      imageView.center = CGPoint(x: CGFloat(i) * 60 + 60/2, y: 60/2) 
      imageView.tag = i 
      imageView.isUserInteractionEnabled = true 
      addSubview(imageView) 

      let tap = UITapGestureRecognizer(target: self, action: #selector(didTapImage(_:))) 
      imageView.addGestureRecognizer(tap) 
     } 

     contentSize = CGSize(width: 10 * 60, height: 60 + 2*10) 

}