【问题标题】:UITableView embedded in UIScrollViewUITableView 嵌入在 UIScrollView 中
【发布时间】:2015-08-12 12:14:02
【问题描述】:

我正在尝试将表格视图嵌入到滚动视图中。我希望滚动发生在滚动视图级别。我能够将表格视图嵌入到滚动视图中,但我一直在尝试调整滚动视图内容大小以适应表格视图的整个高度。我该如何实现这一点?

【问题讨论】:

  • 您搜索了吗?好几个答案。在这个问题上给出的答案:stackoverflow.com/questions/17121488/… 在我看来是合法的
  • 它说 Apple 不建议这样做,但 Instagram 在他们的个人资料屏幕中这样做......我试图模仿 @danh
  • 它可能无法完全模仿 instagram,但其页面包含表格的 UIPageViewController 会提供听起来像您想要的 2D 滚动效果。相对于 sdk 的工作方式,它 100% 符合犹太教规
  • 我认为 Instagram 不会在滚动视图中放置表格视图。我认为他们要么使用集合视图,要么使用常规的旧表视图,并将标题设置为配置文件顶部的信息。如果您朝着这个方向前进,您将获得更好的体验。
  • @MikeSimz 如果您使用表格视图或集合视图的页眉或页脚,您将获得更好的滚动性能。或者只是使第一个单元格不同,并在常规单元格中包含标题视图。对于这个用例,这两个类都非常灵活。

标签: ios objective-c uitableview uiscrollview


【解决方案1】:

您可以在heightForFooterInSectionviewForFooterInSection 中计算tableview 高度

_tblOption.scrollEnabled = NO;
Frame = _tblOption.frame;
Frame.size.height = _tblOption.contentSize.height;
_tblOption.frame = Frame;

_mainScrollView.contentSize = CGSizeMake(_mainScrollView.contentSize.width, _tblOption.frame.origin.y + _tblOption.contentSize.height); 

【讨论】:

    【解决方案2】:

    您的层次结构应如下所示:UIView -> UIScrollView -> UITableView。这意味着您只需创建 UIViewController,然后放置 UIScrollView、连接委托等,然后将 UITableView 控制器放入其中。

    但我想知道你为什么要将tableView 放在滚动视图中,更好的设计会分开放置UITableViewUIScrollView

    我更建议你将 UIView 与 UITableView 和 UIScrollView 分开放置。

    在 XCode 中你可以使用 Editor->Embed In。

    【讨论】:

    • 我想要这样,因为这就是 Instagram 从外观设计他们的个人资料屏幕的方式。
    • 好吧,有 UIScrollView + UICoillectionView 和 UIScrollView + UITableView,不过按照我说的分别放置。
    • 我不相信它们是分开放置的,因为它们作为一个整体滚动......尽管如此,再看一遍后,我相信它只是一个单一的表格视图,顶部的个人信息只是表格视图的标题
    • @MikeSimz 好的,请检查这个项目(虽然它不是我的)并完成视图的实施(当我制作我的 instagramm 应用程序时,我也将它单独放置) - github.com/8ofproject/ElPhotoSnooper
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多