以编程方式“触摸” UITableViewCell?
我需要以编程方式选择一个 UITableViewCell,我已经尝试过:
NSIndexPath *selectedCellIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[table selectRowAtIndexPath:selectedCellIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
但是,它仅在视觉上选择单元格,并且不会在 didSelectRowAtIndexPath
中选择该选择,除非您实际点击该单元格。
任何想法,有没有人经历过这个或有想法来解决这个问题或以不同的方式处理它?
I need to programmatically select a UITableViewCell, I have tried this:
NSIndexPath *selectedCellIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[table selectRowAtIndexPath:selectedCellIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
However, it only selects the cell visually and doesn't pick up on that selection in didSelectRowAtIndexPath
unless you actually tap the cell.
Any ideas, has anyone experienced this or have ideas to get around this or approach it differently?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么在向 selectRowAtIndexPath 发送消息后不向 didSelectRowAtIndexPath 发送消息?代码应该如下所示:
Why not send a message to didSelectRowAtIndexPath after you've sent a message to selectRowAtIndexPath? The code should look like this:
通过想要按下它,我猜您只想运行 didSelectRow 中的代码?
无论您的 didSelectRow 方法中有什么,您都不能将其放入其自己的单独方法中并直接调用它吗?
By wanting it pressed, I'm guessing you just want to run the code in didSelectRow?
Whatever you have in your didSelectRow method, can't you put it in a seperate method of its own and just call it?
如果您对 UITableView 进行子类化,则可以自定义每个 TableViewCell 上发生的 UIEvent。
您的控制器将响应触摸事件:
对于每个事件,您都有一个 NSSET 触摸,您可以找到您的 UitableViewCell
示例:
If you subclass your UITableView it's possible to customize UIEvent that occurs on each TableViewCells.
Your controller will respond to Touch Events:
For each event you have a NSSET of touches and you can find your UitableViewCell
Exemple :