我需要以编程方式选择UITableViewCell,我试过这个:
NSIndexPath *selectedCellIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[table selectRowAtIndexPath:selectedCellIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
但是,它只能直观地选择单元格,并且不会在didSelectRowAtIndexPath
中选择该选择,除非您实际点击该单元格。
任何想法,有没有人经历过这个或有想法绕过这个或以不同的方式处理它?</ p>
答案 0 :(得分:9)
为什么在向selectRowAtIndexPath发送消息后才向didSelectRowAtIndexPath发送消息?代码应如下所示:
NSIndexPath *selectedCellIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[table selectRowAtIndexPath:selectedCellIndexPath
animated:YES
scrollPosition:UITableViewScrollPositionNone];
[table.delegate tableView:table didSelectRowAtIndexPath:selectedCellIndexPath];
答案 1 :(得分:3)
想要按下它,我猜你只想在didSelectRow中运行代码?
无论你在didSelectRow方法中拥有什么,你不能把它放在一个独立的方法中,只需要调用它吗?
答案 2 :(得分:0)
如果您对UITableView进行子类化,则可以自定义每个TableViewCells上发生的UIEvent。 您的控制器将响应触摸事件:
对于每个活动,你都有一个NSSET的触摸,你可以找到你的UitableViewCell 例如:
- touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
for(UITouch *aTouch in touches){
if(aTouch.view IsYourUiTableViewCell){
NSLOG(@"TableViewCell press!");
}
}
}