【问题标题】:UITableView initial row selectionUITableView 初始行选择
【发布时间】:2011-06-17 03:57:21
【问题描述】:

也许我遗漏了一些明显的东西,但我很难以编程方式在 tableView 中设置行选择。目标是简单地打开一个 tableView 并选择一行。问题似乎是我必须等到 tableView 完全加载后才能修改选择。

我已经阅读了各种策略,例如在 viewController 的 viewWillAppear 方法中为 tableView 调用 reloadData,然后立即为目标行调用 selectRowAtIndexPath。但是当我这样做时,我得到一个范围异常,因为此时 tableView 的行数为零。 UITableViewDelegate 方法(numberOfRowsInSection 等)似乎不会立即被调用以响应 reloadData(如果表行是“懒惰”绘制的,这很有意义)。

我能够让它工作的唯一方法是在短暂延迟后调用 selectRowAtIndexPath,但是您可以查看 tableView 将所选行滚动到视图中。

当然,有更好的方法吗?

【问题讨论】:

    标签: uitableview row selection


    【解决方案1】:

    好吧,您可以使用另一种策略。您可以创建一个隐藏的表格视图,配置您想要的方式,而不是向用户显示。使用tableview.hidden = YES

    【讨论】:

    • 我考虑过(隐藏 tableView 直到它完全配置),但是你必须弄清楚 tableView 何时完成加载(即何时取消隐藏它)。似乎应该有一个更简单的方法。要查看我正在尝试实现的示例,请查看 iPad 上的邮件应用程序。当您在纵向单击文件夹按钮时,会出现一个弹出窗口,其中选定的消息行在 tableView 中突出显示。
    • 作为“隐藏然后显示”策略的后续:它排序的作品,但是在表格视图突然出现之前你会看到背景的“闪光” - - 不理想。
    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2013-01-27
    相关资源
    最近更新 更多