在屏幕外移动时,didSelectRowAtIndexPath不会触发

时间:2012-05-15 18:06:22

标签: objective-c ios ipad uitableview didselectrowatindexpath

我的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];

我的问题是,当我的tableview的左上角是负数(屏幕外)时,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];

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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