【发布时间】:2013-07-05 23:51:27
【问题描述】:
在当前版本的 Facebook 应用程序中,时间线视图顶部有一个名为“News Feed”的单元格。这是后过滤器功能。如果您点击它,该单元格底部的新单元格会向下滑动并变得可见。这是一个令人愉快的效果。你知道如何实现类似的东西吗?在你看来,这一切都发生在同一个 UITableViewCell 内还是什么?
【问题讨论】:
标签: iphone ios objective-c cocoa-touch uitableview
在当前版本的 Facebook 应用程序中,时间线视图顶部有一个名为“News Feed”的单元格。这是后过滤器功能。如果您点击它,该单元格底部的新单元格会向下滑动并变得可见。这是一个令人愉快的效果。你知道如何实现类似的东西吗?在你看来,这一切都发生在同一个 UITableViewCell 内还是什么?
【问题讨论】:
标签: iphone ios objective-c cocoa-touch uitableview
这可以使用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,行是自定义UITableViewCell 没有边距?似乎新行与第一行"News Feed" 在同一个单元格中,不是吗?
[UIColor clearColor],这样您就可以使它看起来像一些单元格有边框而另一些没有,所以它们看起来像是同一个单元格的一部分。