像Instagram一样构建个人资料屏幕

时间:2015-05-28 19:40:15

标签: ios objective-c uitableview uiscrollview

因此,我正在构建iOS上的应用程序,这需要一个非常类似的配置文件视图,如Instagrams(适用于iOS)。我的问题是最好的方法是什么 - Instagram的个人资料屏幕包含个人视图,包括你的图片,统计信息等,以及一个像控件这样的标签栏,可让你在你的下面的多个视图之间切换个人观点。这些视图是表视图或集合视图。我能够在不同的表视图/集合视图之间交换底部的视图,但是instagram将它设置为整个配置文件屏幕滚动为一个滚动视图或表视图。我如何实现这一目标或者最好的方法是什么呢?

非常感谢任何帮助。提前谢谢!

2 个答案:

答案 0 :(得分:3)

您必须将整个视图添加到 scrollview

禁用滚动包含多个帖子的tableview。

之后,根据数组中的行数或计数数更改tableview的框架。 喜欢, 您有10个帖子可在表格视图中显示。并且该tableview的行高为100。 所以,

tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.y, tableview.frame.size.width, 100*10);

之后,更改scrollview的内容大小。

myScrollView.contentSize = CGSizeMake(myScrollView.frame.size.height,
                                  tableview.frame.origin.y + tableview.frame.size.height);

<强> - 或 -

如果TableView的高度随每个单元格而变化,那么只需使用以下行: -

myScrollView.contentSize = CGSizeMake(myScrollView.frame.size.height,
                                  tableview.frame.origin.y + tableView.contentSize.height);

然后你得到的视图与Instagram的个人资料视图相同。

不要忘记禁用滚动查看tableview。

我相信,这个解决方案会帮助你。

答案 1 :(得分:1)

将所有内容包装在UIScrollView中可能是一个有点重的解决方案,您将来可能会面临性能问题。您可以添加用户的配置文件信息,并切换到表视图的标题视图,并在单击时切换数据源。

我也遇到过类似的项目要求,问题出在性能上。当您尝试在滚动时自动播放视频时重现Instagram行为... UIScrollView方法可能会变得混乱。

您也可以考虑使用AsyncDisplayKit集成来实现卓越的性能。

问候,谢尔盖