Iphone 在视图之外触摸
有人能帮我吗,这只会检测子视图内部的触摸,而不会检测主视图。您可以将UIgestureRecognitor连接到您感兴趣的视图 (一般来说,手势识别器是一种在任意视图中检测触摸的更加强大的机制,它们可以很好地与UIWebViews和UIScrollViews等倾向于吃传统触摸事件的视图配合使用。) 下面是一个片段:Iphone 在视图之外触摸,iphone,objective-c,ios,Iphone,Objective C,Ios,有人能帮我吗,这只会检测子视图内部的触摸,而不会检测主视图。您可以将UIgestureRecognitor连接到您感兴趣的视图 (一般来说,手势识别器是一种在任意视图中检测触摸的更加强大的机制,它们可以很好地与UIWebViews和UIScrollViews等倾向于吃传统触摸事件的视图配合使用。) 下面是一个片段: -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touch
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
NSLog(@"The tag %i",touch.view.tag);
if( [touch.view isKindOfClass:[UIScrollView class]] ) {
for( UIView *checkview in [self.view subviews] ) {
if( [checkview tag] == 1 ) {
infoIsVisibile = NO;
[info removeFromSuperview];
}
}
}
[super touchesBegan:touches withEvent:event];
}
(此代码来自下面的链接文档——请注意self.theView可能是作为当前对象的成员存储的某个随机视图。)
你会很高兴地惊讶(或震惊)手势识别器简化了你的代码并减少了怪异
以下是苹果文档的链接:
你能更详细地解释你的问题吗?例如,这是否在自定义视图中?那景色在哪里?它是如何连接的?。。。此外,在迭代数组时不应该对数组进行变异(在这里,在迭代子视图数组时删除一个子视图)。我试图做的是,当我单击UIViewController上的按钮时,会弹出一个子视图,当我想关闭UIView时,我在UIView外部触摸,我添加了手势代码,但无论我触摸什么,它都会关闭UIView
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleDoubleTap:)];
singleFingerDTap.numberOfTapsRequired = 2;
[self.theView addGestureRecognizer:singleFingerDTap];
[singleFingerDTap release];