UIScrollView 的触摸事件
Posted
技术标签:
【中文标题】UIScrollView 的触摸事件【英文标题】:Touches event for a UIScrollView 【发布时间】:2013-02-05 10:00:37 【问题描述】:如何获取 。我有一个 UIViewController,我在 viewController 中放置了一个 scrollView。我需要将 imageViews 添加到 scrollView,如果单击特定图像,它应该重定向到其相应的 viewController。 我知道如何将触摸事件添加到 UIViewController。但这不适用于滚动视图。
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch= [touches anyObject];
if ([touch view] == img1)
ViewController2 *viewController2=[[ViewController2 alloc]initWithNibName:@"ViewController2" bundle:nil];
[self presentViewController: viewController2 animated:YES completion:nil];
如何获取滚动视图的触摸事件?
【问题讨论】:
***.com/questions/14785395/… 【参考方案1】:这样做的唯一方法是创建自定义UIScrollView
您的自定义UIScrollView
将是UIScrollView
的子类。
还有更多选项,您可以查看this
【讨论】:
你能告诉我怎么做吗?我已经提到了你提供的链接,但他在哪里创建了子类?有一个视图的所有事件 @NikhatAfshan : 1. 创建 UIScrollView 的子类 2. 覆盖 Touches 结束方法 @NikhatAfshan :检查此iphonedevsdk.com/forum/iphone-sdk-development/…【参考方案2】:设置如下:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[scrollView addGestureRecognizer:singleTap];
and you get the touch in:
- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
CGPoint touchPoint=[gesture locationInView:scrollView];
【讨论】:
是的,我们会得到接触点(宽度和高度)。你能告诉我,如果接触的事件是 image1 或 image2,我怎么能得到?【参考方案3】:您可以使用ScrollViewDelegate,并且可以使用“ScrollViewDidScroll”函数来获取scrollview滚动事件。
设置点击手势识别器:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];
[scrollView addGestureRecognizer:singleTap];
- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture
CGPoint touchPoint=[gesture locationInView:scrollView];
【讨论】:
是的,我们会得到接触点(宽度和高度)。你能告诉我,如果接触的事件是 image1 或 image2,我怎么能得到? 您将获得 X 和 Y 轴,据此,您可以找出放置图像的位置是图像 1 还是图像 2 当我点击图片中间时,我得到了 x=283 和 y=228。当我点击图片左侧时,我确实得到了一些其他位置。那么我该如何比较图片在某个区域内? 您不需要将图像与区域进行比较,但您需要根据所点击的区域执行任务。 是的,我的图像尺寸是 (217,257,89,82)。当我点击图像的各种点时,我会得到单独的 x 和 y 接触点。我需要单独编写所有要访问的点吗同一个 ViewController?以上是关于UIScrollView 的触摸事件的主要内容,如果未能解决你的问题,请参考以下文章
以 UIScrollView 作为子类的 UIView 不接收触摸事件