移出屏幕时不会触发 didSelectRowAtIndexPath

Posted

技术标签:

【中文标题】移出屏幕时不会触发 didSelectRowAtIndexPath【英文标题】:didSelectRowAtIndexPath won't fire when moved offscreen 【发布时间】:2012-05-15 18:06:21 【问题描述】:

我有一个UITableView,它最初在屏幕外,当按下按钮时,我将视图的中心点向右移动,将表格视图移回屏幕上。类似于 Facebook 中的菜单。

//Slide in Side Menu
[UIView beginAnimations:nil context:nil];    
[UIView setAnimationDuration:.75];

self.view.center = CGPointMake((cgSize.width/2)+10, 165);

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];    

[UIView commitAnimations];

我的问题是,当我的表格视图的左上角是负数(屏幕外)时,didSelectRowAtIndexPath 不会触发并且由于某种原因禁用了选择。

menuTableView = [[UITableView alloc] initWithFrame:CGRectMake(-350, 0, 350, cgSize.height-50) 
                                                 style:UITableViewStylePlain];

当我将 -350 更改为 0 时,它可以完美运行,如下所示:

menuTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 350, cgSize.height-50) 
                                                 style:UITableViewStylePlain];

有什么想法吗?

【问题讨论】:

当你在做这个时 menuTableView = [[UITableView alloc] initWithFrame:CGRectMake(-350, 0, 350, cgSize.height-50) style:UITableViewStylePlain]; ,你的整个框架应该是不可见的,如何按下表格单元格? 【参考方案1】:

表格视图的框架在视图的标准框架之外,因此输入不会向下转发到表格视图。您需要弄清楚如何保持表格视图的边界包含在其父视图中,同时仍然按照您希望的方式制作动画

【讨论】:

当我单独移动所有视图然后移动 UITableView 时,它可以工作。只需使用 self.view.center = CGPointMake((cgSize.width/2)+10, 165);不起作用。

以上是关于移出屏幕时不会触发 didSelectRowAtIndexPath的主要内容,如果未能解决你的问题,请参考以下文章

UISearchController 的 UISearchBar 在活动时移出屏幕

javascript --- 鼠标事件

UICollectionView invalidateLayout 不会在屏幕方向更改时触发 sizeForItem

jquery鼠标移入移出

通过 SetPixel 设置的 C++ 像素在调整控制台大小或将其移出屏幕时消失

在调整屏幕大小时,当移动到溢出按钮时,工具栏中的SplitButton不会触发点击处理程序。