像 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 动画 [重复]