像 Facebook 应用一样的 UITableView

Posted

技术标签:

【中文标题】像 Facebook 应用一样的 UITableView【英文标题】:UITableView like Facebook app 【发布时间】:2013-07-05 23:51:27 【问题描述】:

在当前版本的 Facebook 应用程序中,时间线视图顶部有一个名为“News Feed”的单元格。这是后过滤器功能。如果您点击它,该单元格底部的新单元格会向下滑动并变得可见。这是一个令人愉快的效果。你知道如何实现类似的东西吗?在你看来,这一切都发生在同一个 UITableViewCell 内还是什么?

【问题讨论】:

【参考方案1】:

这可以使用insertRowsAtIndexPaths:withRowAnimation来实现

请记住,表的数据源需要适应插入的行,numberOfRowsInSection 方法也是如此。

我认为这里使用的适当动画效果是UITableViewRowAnimationTop,这样单元格看起来就像从上到下插入一样。

在您的示例中,一旦用户点击新闻提要单元格,您可能会这样做:

[tableView insertRowsAtIndexPaths:[NSArray arrayWithObjects: [NSIndexPath indexPathForRow:1 inSection:0], [NSIndexPath indexPathForRow:2 inSection:0], [NSIndexPath indexPathForRow:3 inSection:0], nil] withRowAnimation:UITableViewRowAnimationBottom];

您的 numberOfRowsInSection 方法将返回您的原始值 + 3。

您的cellForRowAtIndexPath 方法应该有代码来构建刚刚添加的新闻单元格。

【讨论】:

谢谢。但所以它是UITableView 在主要的UITableView 内? 不,它是 UITableView 的实例方法之一。它使用您的 UITableViewDataSource 方法来呈现您添加的新单元格。您将在要向其中添加行的 tableview 上调用此方法。 Sid,抱歉回复晚了。所以如果它是相同的主UITableView,行是自定义UITableViewCell 没有边距?似乎新行与第一行"News Feed" 在同一个单元格中,不是吗? Fred,在这种情况下,有多种方法可以达到相同的效果。可以自定义单元格的边距。此外,您可以为单个单元格将 UITableView 的 separatorColor 属性设置为 [UIColor clearColor],这样您就可以使它看起来像一些单元格有边框而另一些没有,所以它们看起来像是同一个单元格的一部分。

以上是关于像 Facebook 应用一样的 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

像 Facebook 时间线一样创建 tableview ...... iPhone 应用程序 [关闭]

如何像在 Facebook 应用程序中一样以编程方式打开设置?

如何让来自 Firebase 控制台的通知像 Facebook 和其他应用一样弹出?

像 Facebook Iphone 应用程序一样滑动 ViewController 动画 [重复]

像 iPhone facebook 应用程序一样的可拖动 ViewController

如何在本地联系人应用程序中让自定义帐户像 Google/LinkedIn/Facebook 一样显示?