【问题标题】:How to unselect a UITableViewCell when UITableView has scrolled?UITableView 滚动时如何取消选择 UITableViewCell?
【发布时间】:2010-07-24 00:53:34
【问题描述】:

如何在 UITableView 滚动时取消选择 UITableViewCell?

【问题讨论】:

    标签: iphone objective-c cocoa-touch uitableview


    【解决方案1】:

    我想你可以使用以下答案:

    Detecting UITableView scrolling

    确保您的 .h 文件类似于以下内容:

    @interface ItemSelectController : UITableViewController <UIScrollViewDelegate> {
    

    然后将以下内容放在您的 .m 中以检测何时发生滚动并取消选择任何已选择的单元格。

    -(void) scrollViewDidScroll:(UITableView *)sender {
        [sender deselectRowAtIndexPath:[sender indexPathForSelectedRow] animated:YES];
    }
    

    末尾那些有趣的括号中的 UIScrollViewDelegate 表示它实现了该协议。这意味着您可以访问诸如 scrollViewDidScroll 之类的功能。那里的顶级功能会覆盖它以执行您想要的操作。您不会碰巧启用了多选,对吗?

    【讨论】:

    • 我已经在使用 - (void)scrollViewDidScroll:(UIScrollView *)scrollView 我怎样才能包含我的 UITableView?
    • 我不确定包含 UITableView 是什么意思。你能澄清一下吗?答案是,当你的 UITableView 滚动时,它会向你的控制器发送一条消息,然后它会取消选择所有内容。见第二个代码块第一行的末尾,上面写着:(UITableView *) sender ?
    【解决方案2】:

    您可以在 cellForRowAtIndexPath 中使用以下行在表格视图滚动后取消选择行:

    [_tableView selectRowAtIndexPath:0 动画:NO scrollPosition: UITableViewScrollPositionNone];

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-06
      • 2021-11-08
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      相关资源
      最近更新 更多