构建像 Instagram 这样的个人资料屏幕

Building a Profile Screen like Instagram

所以我正在 iOS 上构建一个应用程序,它需要与 Instagrams(对于 iOS)非常相似的个人资料视图。我的问题是最好的方法是什么 - Instagram 的个人资料屏幕包括带有您的照片、统计数据等的个人视图,以及一个类似于控件的选项卡栏,允许您在个人视图下方的多个视图之间切换。这些视图是 table 视图或集合视图。我可以在不同的 table views/collection 视图之间交换底部的视图,但 instagram 将其设置为整个个人资料屏幕滚动​​为一个滚动视图或 table 视图。我如何实现这一目标或构建这一目标的最佳方式是什么?

如有任何帮助,我们将不胜感激。提前致谢!

您必须将整个视图添加到 滚动视图

禁用了table具有多个帖子的视图的滚动。

之后,根据数组中的行数或计数数更改table视图的框架。 像, 您有 10 个帖子要在 table 视图中显示。该 table 视图的行高为 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的个人资料视图相同。

不要忘记禁用table视图的滚动。

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

将所有内容包装在 UIScrollView 中可能是一个有点繁重的解决方案,您将来可能会遇到性能问题。您可以添加用户的个人资料信息,并将选项卡切换到您的 table 视图的 header 视图,并在点击时切换数据源。

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

您也可以考虑集成 AsyncDisplayKit 以获得出色的性能。

此致,谢尔盖