4 iphone uiscrollview uigesturerecognizer
我在自己的视图中添加了一个TapGestureRecognizer:
tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:tap];
[tap release];
Run Code Online (Sandbox Code Playgroud)
该视图包含带有图像和标签的单个UIScrollView.我想检测用户是否点击标签.
- (void)singleTap:(UIGestureRecognizer*)gestureRecognizer {
CGPoint pt = [gestureRecognizer locationInView:self.view];
UIView *v = [self.view hitTest:pt withEvent:nil];
if ([v isKindOfClass:[UILabel class]]) {
NSLog(@"label!");
return;
}
// else do other stuff if its not a label
Run Code Online (Sandbox Code Playgroud)
但是我没看到标签!在我的日志中.
我认为这是因为userInteractionEnabled默认情况下NO是UILabels.试着打开它.
编辑:这真的是一个猜测,但只是为了确认,Apple官员[UIView hitTest:withEvent:]说:
此方法忽略隐藏的视图对象,禁用用户交互或alpha级别小于0.01的视图对象.
| 归档时间: |
|
| 查看次数: |
5049 次 |
| 最近记录: |