【问题标题】:What are your favourite UITableView / UITableViewCell tricks? [closed]你最喜欢的 UITableView / UITableViewCell 技巧是什么? [关闭]
【发布时间】:2010-10-25 00:18:06
【问题描述】:

UITableView 是一个非常强大的类,为 iPhone 上的许多导航和偏好视图提供支持。许多人提出了有用的 UITableView 提示、技巧和示例:

  • 为表格单元格使用 Interface Builder 的各种方式
  • 如何创建首选项样式的单元格
  • 确保良好的滚动速度

请发布您最喜欢的有关使用 UITableView 的提示,每个问题一个提示。我将首先发布我在 Stack Overflow 上找到的内容以及我的书签中的内容。

【问题讨论】:

    标签: iphone cocoa-touch


    【解决方案1】:

    在编辑模式下实现“复选标记”以一次操作多行:来自伟大的 Cocoa With Love 博客的“Multiple row selection and editing in a UITableView”。

    【讨论】:

      【解决方案2】:

      实现首选项样式的分组表:Three20 库(从 Facebook iPhone 应用程序中提取)有一组包含各种控件的现成单元格。

      (但不确定您是否要使用它们。Three20 有点“未发明”的问题,并尝试子类化和扩展所有内容,因此添加它会给您的项目添加相当多的混乱。但是至少你可以拿来做例子。)

      【讨论】:

      • 我对 Three20 也有同样的感觉。我真的不太愿意将它直接集成到我的项目中,因为他们每次都试图重新发明轮子,因为每次事情不能按照他们想要的方式工作。虽然,不得不承认它背后的人有一些严肃的可可魔力,你绝对可以从他的一些技巧中得到启发。
      • 是的,我将它用于拇指视图,但不久之后我自己重新实现了它。这么简单的使用太麻烦了。不过它确实是一个图书馆。
      【解决方案3】:

      有没有想过 UITableViewController 的真正作用是什么?

      • 在 viewWillAppear 中,它取消选择任何选定的行,animated:YES

        顺便说一句,这就是为什么当您在 UINavigationController 中导航回来时,您之前触摸过的行会被动画很好地取消选择。当您将一个新的视图控制器推送到 UINavigationController 上时,您已经选择了该行。当您弹出它并返回表视图时,viewWillAppear 会触发并取消选择该行。 UINavigationController 甚至不知道发生了这种情况。

      • 在 viewWillAppear 中,如果表视图不包含任何行,它会调用 reloadData

      • 在 viewDidAppear 中,它调用flashScrollIndicators

      • 它监控键盘的出现和消失,并适当调整表格视图的大小,以便在您点击表格视图中的文本字段时,它在键盘出现后仍然可见。

      如果您不需要键盘监控行为,如果需要,您可以轻松完成其他所有操作。

      【讨论】:

      • 我从来没有见过桌子免费移开键盘,我必须自己实现。有什么技巧可以做到这一点?
      • @Corey 嗯。 UITableViewController 包含执行此操作的代码,我认为它只是开箱即用。将检查如何实现它,谢谢。
      • 诀窍是在覆盖这些方法时调用 super。
      【解决方案4】:

      如何使用 Interface Builder 来创作您的单元格?在单独的 Stack Overflow 讨论中查找答案:“Using Interface Builder for UITableView’s

      【讨论】:

        【解决方案5】:

        如何实现自定义单元格背景视图?

        Mike Akers 在 Stack Overflow 上的“How to customize the background/border colors of a grouped table view?”中提供的优秀示例课程。

        【讨论】:

          【解决方案6】:

          为确保良好的滚动性能,尽可能避免任何元素的透明度非常重要 - 因此,如果您要创建自定义单元格,请使它们全部不透明并正确设置背景。

          您可以使用 Core Animation Performance Tool 直观地查看单元格中的透明度 - 您必须在设备上运行才能使用此工具。

          【讨论】:

            【解决方案7】:

            如果要删除分隔线,请使用:

            [self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
            

            【讨论】:

              猜你喜欢
              • 2010-09-12
              • 2010-10-06
              • 2010-09-13
              • 2010-09-06
              • 2010-09-05
              • 2010-11-29
              • 2010-10-08
              • 2011-07-18
              • 2010-09-13
              相关资源
              最近更新 更多