我有一个滚动视图,其中包含三个子视图,如下所示:
问题在于,由于包含标签的堆栈视图占子视图总宽度的80%,因此当用户滚动应用程序时,这看起来很奇怪:
正如您所看到的,由于应用于宽度约束的80%乘数,底部滚动视图中的视图看起来不太合适。用户滚动滚动视图越多,“偏移”越大。我想让子视图始终居中。
如何在保持80%比例的同时保持观点居中?
内容插页:
slideScrollView.contentSize.width = view.bounds.width * CGFloat(introArray.count)
子视图设置:
slideScrollView.addSubview(introView)
introView.frame = CGRect(x: view.bounds.width * CGFloat(index), y: 0, width: view.bounds.width, height: slideScrollView.frame.height)
堆栈视图设置:
答案 0 :(得分:2)
考虑这个视图层次结构,其中每一行都是它下面一行的父级......
|<------------contentSize.width---------->| scroll view
|-----p0------|------p1-----|------p2-----| pages
|-------| |--------| |--------| orange views, 80%
|-------| |--------| |--------| labels, center justified"
关键是添加“页面”图层,将滚动视图内容划分为三分之一。橙色视图将80%的宽度应用于那些。
答案 1 :(得分:1)
对于横幅,我会使用UIPageViewController
。每个页面的每个控制器都有UIColor.clear
背景,橙色部分将是其子视图正确居中并根据控制器的视图对齐。