我目前正在使用UIScrollView来作为滚动/拖动我在应用程序上显示的图形的光标/标记的方式。我使用scrollViewDidScroll等来检测contentoffset的位置,并根据此位置来操纵我在屏幕上显示的内容。
我的问题是,是否还可以在屏幕上检测到用户的单击并获得该位置(然后将contentoffset设置到该位置)?
我已经阅读了一些描述如何创建uiscrollview的子类的教程,但似乎这些子类仅会占用一次点击,而不会同时拖动/滚动。
是否有人对我如何在仍具有滚动/拖动功能的情况下如何检测用户在UIScrollView上的单击有任何见解?
先感谢您!
最佳答案
对您的scrollView对象使用以下代码:
UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
singleTapGestureRecognizer.numberOfTapsRequired = 1;
singleTapGestureRecognizer.enabled = YES;
singleTapGestureRecognizer.cancelsTouchesInView = NO;
[scrollView addGestureRecognizer:singleTapGestureRecognizer];
//[singleTapGestureRecognizer release]; Not needed in ARC-enabled Project
}
- (void)singleTap:(UITapGestureRecognizer *)gesture {
//handle taps
}