【问题标题】:UITableView - what row was selected?UITableView - 选择了哪一行?
【发布时间】:2009-03-19 20:12:26
【问题描述】:

我有一个问题 - 如何在表格中选择多行?我将它手动分配给一个变量。问题是如果取消选择一行,我的变量仍然保留旧值。

我能做些什么呢? UITableView 中是否有返回当前选中行数的方法?

提前谢谢你, 伊利亚。

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    如果您还没有实现委托(参见 nduplessis),UITableView 还提供:

    - (NSIndexPath *)indexPathForSelectedRow
    

    【讨论】:

    • 谢谢你,Jarret,这正是我所需要的。现在一切正常。
    • 对于任何寻找多选版本的人来说,它是- (NSArray *)indexPathsForSelectedRows
    • 这个方法的问题是,无论何时调用它,即使用户没有选择任何东西,它也会返回 0。
    • 如果用户没有选择任何东西,它实际上返回 nil(Apple 的文档:An index path identifying the row and section indexes of the selected row or nil if the index path is invalid.)。请记住,允许向 nil 发送消息,在这种情况下,[myNilIndexPath row] 返回 0,因为 myNilIndexPath 为 nil。检查从 indexPathForSelectRow 返回的对象不是 nil 应该可以解决问题。
    • @JarretHardie 谢谢。如果将 NSNotFound 作为 section 的值不是更有意义吗?
    【解决方案2】:

    UITableViewDelegate 会调用

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    

    选择行时。由此您可以使用 indexPath.section 和 indexPath.row 轻松确定行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 2016-04-06
      • 2010-11-13
      • 1970-01-01
      • 2013-11-27
      • 1970-01-01
      相关资源
      最近更新 更多