使用UIScrollViews

时间:2017-01-04 07:45:13

标签: ios swift uiscrollview

我在UIScrollView上观看过很多Youtube视频。 Hereherehere。然而,没有什么能解决我的问题。

我在这里找到了一个与我合作的示例故事板。

enter image description here

我需要什么:

  1. ViewController必须嵌入导航控制器中。
  2. BlueViewCyanView会根据宽高比相应地调整屏幕尺寸。
  3. YellowView将具有可变高度,因为它包含嵌入了UITableViewUICollectionView的ContainerView。这意味着我的用户可以在视图之间切换以查看具有不同格式的类似数据。它的信息来自服务器端。这意味着如果没有内容,则不需要任何滚动。如果要获取许多行数据,滚动应该可以显示我的所有信息。
  4. 遇到问题

    1. 如果我没有为每个观点设定特定的高度,IB会抱怨需要限制高度或Y位置。
    2. 当我尝试在IB中指定高度(以避免抱怨)时,在运行时,我尝试更改yellowViewmyScrollView的高度,滚动不会发生了。

1 个答案:

答案 0 :(得分:1)

UIScrollView内添加容器视图。这将包含您的其他观点。所以heirarchy变成这样:

|---UIScrollView
       |----UIView
               |---Blue View
               |---Cyan View
               |---Yellow View

此容器视图将{{1>前导,尾随底部顶部添加到{{1} }。还要在UIScrollView主视图中添加等宽等高约束。优先级为UIViewController 等高约束。然后:

  • 蓝色视图,在 superView中添加前导尾随顶部约束并添加宽高比约束。修改值,直到看到250看起来很好。
  • 青色视图中,将前导尾随添加到 superView 并添加顶部间距蓝色视图。添加与蓝色视图相同的宽高比
  • 现在您的黄色视图,将顶部添加到青色视图前导尾随底部间距到 superView

现在,您的UIView前导尾随底部顶部添加到容器视图或直接使用UITableView

如果您希望在黄色视图中嵌入UITableView或直接使用UITableView并期望主UITableView可滚动,则您将必须手动为UIScrollView获取高度约束出口,并根据UITableView的行数和每行的高度相应地更新它,以便UITableView可以根据yellow view增加其高度在嵌入式UITableView的高度上,因此相应地更新内容视图,这将反过来更新UIScrollView的总内容大小。