我有一个UIScrollView,我需要能够滚动它。同时,我需要检测scrollview上的点击。我怎样才能做到这一点?
我已经尝试过添加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 :(得分:1)
尝试在滚动视图中放置一个视图,并将手势识别器和另一个视图添加到该视图中。
答案 1 :(得分:0)
解决方案:将MPMoviePlayerController的视图添加到UIScrollView时,需要在MpMoviePlayerController视图上禁用用户交互,以便UIScrollView能够捕获手势识别器。只有当您不希望使用mpmovieplayercontrollers默认菜单等进行交互时,此解决方案才有效。
答案 2 :(得分: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)
}