我有一个UITableView作为UIViewController的实例变量,它也是一个UITableViewDelegate和UITableViewDataSource。该表是固定的并且短于屏幕高度,因此禁用滚动。如果您非常轻柔地对待它,行选择就会起作用 - 没有直接在行上滑动的坚固印刷机就可以了。
但是,桌面上的任何类型的快速点击,某些滑动或多点触控都会导致行闪烁,并且不会发送对didSelectRowAtIndexPath的调用。例如,如果选择了行0并且当前突出显示,则当您按下第2行时,它将突出显示,然后向下拖动到第3行,不会突出显示任何内容,并且在抬起手指时,第0行突出显示。
这可以改善吗?这是预期的行为吗?故意拖延可能是故意取消,但快速点击是我比现在看起来更可靠的捕获。
这里是我设置tableview的代码:
tableView2 = [[UITableView alloc]initWithFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y + HEADERANDFOOTERHEIGHT,
LEFTIMPORTWIDTH, self.view.frame.size.height - HEADERANDFOOTERHEIGHT * 2)];
[tableView2 setDataSource:self];
[tableView2 setDelegate:self];
tableView2.scrollEnabled = NO;
tableView2.exclusiveTouch = YES;
tableView2.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bkg_ptn_darkgraynoise.png"]];
[tableView2 setSeparatorStyle: UITableViewCellSeparatorStyleNone];
[tableView2 setRowHeight:52.0f];
[self.view addSubview:tableView2];
但我不认为该代码中有任何奇怪的事情发生。我认为这只是我期望比默认行为更好的性能的一个案例?
答案 0 :(得分:0)
最后我要启用滚动功能。即使菜单永远不需要滚动,如果您不小心沿着菜单拖动手指,也会感觉更直观。
如果我再次这样做,我可能会把它作为按钮列表而不是UITableView,但这是一个相对较小的问题。