将UIPageControl定位在UIViewController上,关于UIView在其上的subViewController的位置。

时间:2015-10-22 22:02:46

标签: ios objective-c autolayout uipageviewcontroller

所以我遇到了布局和约束问题。

我在http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/使用了针对UIPageViewControllers的app coda教程,但我做了一些小改动。

我已将内容视图控制器添加为主视图控制器的子视图。它匹配其超视图的高度和宽度。在这个子视图中,我已经布置了一个UIImageView和一个UISegmentedControl(见截图)。我还为这个视图控制器添加了一些约束,它将UIImageView绑定到其容器的顶部,右侧和左侧,分段控件也以图像视图为中心,并为上面的uiimageview和下面的容器底部添加了约束。这样做的结果是视图控制器在不同的设备大小上保持其外观。 enter image description here 但是,我需要在UIImageView的底部放置一个UIPageControl(页面指示器),但我不想将它放在子视图上,因为它会随着UIPageViewController的页面转动 - 所以我将它放在SuperView上(见截图)。我用;

[self.view bringSubviewToFront:self.pageControl];

将我的页面控件始终放在视图层次结构的前面。最终结果应如下面的截图

enter image description here

然而,超级视图上的页面指示符的相对位置会因不同设备而发生变化。

我的问题是我如何在它自己的viewController上为这个页面指示器添加约束,这样当页面指示器位于超级视图上时,它总是出现在UIImageview的底部,它位于子视图上无论运行什么设备。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以我找到了一个简单的答案......

只需向SuperView添加一个新的UIImageView并设置类似的约束,使其遵循与子视图中的UIImageView相同的缩放规则。然后使用布局约束将页面指示符锚定到新UIIMageView的底部。

查看截图。

enter image description here