Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 苹果是否接受包含检查UITableViewWrapperView的代码_Ios_Iphone_Objective C_Uitableview_Uigesturerecognizer - Fatal编程技术网

Ios 苹果是否接受包含检查UITableViewWrapperView的代码

Ios 苹果是否接受包含检查UITableViewWrapperView的代码,ios,iphone,objective-c,uitableview,uigesturerecognizer,Ios,Iphone,Objective C,Uitableview,Uigesturerecognizer,我正在使用以下代码检查我的viewcontroller.view是否有点击。 (注:我为此添加了点击手势识别器) 由于我的viewcontroller.view包含TableView和一些其他视图,如文本字段等,当我点击表视图(行数较少)和底部文本字段之间的间隙时,我总是在上面的NSLOG中打印UITableViewWrapperView。 这可能是因为,我的tableview的框架足够大,可以容纳触摸点,尽管可以看到的单元格很少 上面的代码可以很好地解决这样一个轻敲键盘的问题。 我只是担心苹果

我正在使用以下代码检查我的
viewcontroller.view是否有点击。
(注:我为此添加了点击
手势识别器

由于我的
viewcontroller.view
包含
TableView
和一些其他视图,如文本字段等,当我点击表视图(行数较少)和底部文本字段之间的间隙时,我总是在上面的
NSLOG
中打印
UITableViewWrapperView
。 这可能是因为,我的tableview的框架足够大,可以容纳触摸点,尽管可以看到的单元格很少

上面的代码可以很好地解决这样一个轻敲键盘的问题。 我只是担心苹果是否会批准这种包含
UITableViewWrapperView
的代码检查

~z~先谢谢你

CGPoint touchPoint = [touch locationInView:nil];
CGPoint convertedPointWRTMainView = [self.view convertPoint:touchPoint fromView:nil];
CGPoint convertedPointWRTTouchView =  [YourTableViewReference convertPoint:touchPoint fromView:nil];
BOOL shouldReturnTouch = [YourTableViewReference pointInside:convertedPointWRTTouchView withEvent:nil];
  shouldReturnTouch =  shouldReturnTouch || [self.view pointInside:convertedPointWRTMainView withEvent:nil];

if(shouldReturnTouch) {
return YES;
}
return NO;
此代码将让您知道使用点击手势的触摸点是否在tableview中。因此,与其使用“UITableViewWrapperView”硬编码,不如检查触摸是否位于tableview中,并检查点击是否位于主视图中。
试试这将适用于iOS 6和iOS 7

尝试使用
UITableView
,它应该是下一个响应者。最近添加了包装器视图,它可能会在任何功能iOs版本中被静默删除,因此,您的代码并不安全或“完美工作”。因此,您的目标是在用户点击表视图但实际上没有点击表上的一行时关闭键盘?问这个问题而不是问“私人”课程这是什么?这究竟是如何回答这个问题的?没有任何解释会让你在这里落选-1@SatyamRaikar仅仅因为你不同意一条评论并不意味着你必须对它进行辱骂。@Satymarikar这个网站的想法是一些提问,用户提供有解释的答案,遇到问题的未来用户(如果不一样的话)可以阅读说明查看答案,并尝试实现答案。如果一个新用户出现了,并且有与OP相同的问题,并且看了你的答案,他们将不知道这里发生了什么,我喜欢认为我是一个有经验的开发人员,我不知道你的答案如何回答OP问题。所以我的否决票是有效的,我不需要成为否决票的OP。@SatyamRaikar代码也不需要有任何错误,但如果它不能解释自己,那么就像你的答案一样,我不能否决票。这就是网站的工作原理,如果你不喜欢它,就不要使用它,就这么简单。如果用户知道发生了什么,那么他们一开始就不会问这个问题,所以他们显然不知道。这样的攻击性语言在这里是不受欢迎的,只会让你被禁止使用这个网站。我已经将你的评论标记为滥用,就像我说的,如果你不喜欢这种方式,那么就停止使用这个网站。@satymarikar你使用的
“@sshole”sealer“
这显然是滥用。如果你提供一个解释来解释你的答案,那么我会非常高兴地取消我的否决票,但既然你侮辱了我,我真的不想这么做,但这也不是怎么回事,如果你提供一个好的解释,那么否决票就会被取消。我知道你的代码在做什么,但我不明白它是如何解决OPs问题的,这也是你需要解释的原因。
CGPoint touchPoint = [touch locationInView:nil];
CGPoint convertedPointWRTMainView = [self.view convertPoint:touchPoint fromView:nil];
CGPoint convertedPointWRTTouchView =  [YourTableViewReference convertPoint:touchPoint fromView:nil];
BOOL shouldReturnTouch = [YourTableViewReference pointInside:convertedPointWRTTouchView withEvent:nil];
  shouldReturnTouch =  shouldReturnTouch || [self.view pointInside:convertedPointWRTMainView withEvent:nil];

if(shouldReturnTouch) {
return YES;
}
return NO;