0

我有一个 UITableView 作为 UIViewController 的实例变量,它也是 UITableViewDelegate 和 UITableViewDataSource。表格是固定的并且比屏幕高度短,所以滚动被禁用。如果您非常轻柔地对待行选择,则它会起作用 - 没有直接在行上滑动的牢固按压就可以了。

但是任何类型的快速点击、一些滑动或多点触控都会导致行闪烁,并且不会发送对 didSelectRowAtIndexPath 的调用。例如,如果第 0 行被选中并且当前突出显示,当您按下第 2 行时,它将突出显示,然后向下拖动到第 3 行,不会突出显示任何内容,并且在您抬起手指时,第 0 行会突出显示。

这可以改进吗?这是预期的行为吗?无论如何,故意拖动可能是有意取消,但快速点击是我宁愿捕捉的东西,而不是现在似乎正在做的事情。

这是我设置表格视图的代码:

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

但我认为该代码中没有任何奇怪之处。我认为这只是我期望比默认行为更好的性能的一个例子?

4

1 回答 1

0

最后,我将启用滚动。尽管菜单永远不需要滚动,但如果您不小心沿着菜单拖动手指,感觉会更直观。

如果我再次这样做,我可能会将其设为按钮列表而不是 UITableView,但这是一个相对较小的问题。

于 2013-04-11T22:36:52.850 回答