UIScrollview和导航栏内容偏移问题

时间:2017-02-05 00:24:21

标签: ios uiscrollview navbar

因此,我试图了解导航栏和滚动视图如何协同工作。

我遇到的问题是,当我将标签放在具有导航栏和滚动视图的视图控制器上时,似乎我必须将标签放在导航栏下方,以便导航栏遮挡它以便获得适量的抵消。

问题是,如果我单击视图控制器并将顶部栏从推断更改为无并以这种方式设置我的视图,然后在我的视图设置后将其切换回来,它似乎有效,例如它会自动将我在inteface构建器上的内容移动到导航栏下方,然后所有约束都可以正常工作。

我猜我错过了关于如何设置滚动视图和导航条的概念,你不必将其更改为无,然后再返回以便更正视图?

编辑1:它似乎与我钉在标签顶部的位置有关....如果我将它固定到顶部布局指南(因此它成功调整导航栏和状态栏)然后它没有' t移动,如果我将它固定在容器视图的顶部,那么它的设置为64pts,我不想硬编码?

Scroll View with Label

1 个答案:

答案 0 :(得分:0)

这取决于Translucent的导航栏属性 如果导航栏是半透明的,则内容可见,如下例所示。这将需要将滚动视图扩展到导航栏后面

Translucent demo

如果Translucent设置为false,则滚动视图不需要位于导航栏后面,因此将滚动视图推送到导航栏下方。

从红外线更改为无,导致视图控制器将导航栏用作屏幕上的普通元素,无论其半透明属性如何。

更新1:实施

我想我得到你想要用滚动视图做什么,但为什么要使用容器?为什么不直接将imageViews和Labels添加到scrollView。我还建议一个更好的方法来解决这个问题,为什么不使用tableViewController将视图作为其标题而没有任何单元格。

enter image description here enter image description here

您现在可以为内容设置固定大小或以编程方式更改大小

从您的containerView创建IBOutlet到您的代码

viewDidLoad

中的

containerView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.width, height: self.tableView.frame.height)

containerView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.width, height: 200)

containerView.frame = CGRect(x: 0, y: 0, width: self.tableView.frame.width, height: self.tableView.frame.height * 2)

取决于您要如何配置视图。我认为这是使用界面构建器处理scrollView的最简单方法。