首页 > 解决方案 > 为什么我的设置切断了我对边距的限制?

问题描述

我正在从连接到UIViewController这样的故事板工作:

在此处输入图像描述

更新:

问题似乎是我的约束没有固定到边距。这是我固定在底部的约束。

在此处输入图像描述

以下是它如何转化为不同的设备。 在此处输入图像描述 在此处输入图像描述

我弄乱了倒数第二张图片中显示的各种尺寸设置。如果有人不能很容易地检测到为什么会发生这种情况,我会尝试一种更系统的方法来改变这些。它似乎与页面控件无关,而与页面大小更相关

项目 Github 这里

再次注意,即使在使用以下方法创建视图控制器时,我也会遇到完全相同的问题: 这里 我选择了使用的代码而不是链接处的代码,只是因为我已经对此进行了编码并且它们在问题上是相同的,我已经意识到这是一种更复杂的方式来实现这一点。通过对底部的简单约束,完美地重现了这个问题。

标签: xcodexamarin.iosautolayoutconstraintshorizontalscrollview

解决方案


您的代码/情节提要有很多问题,但我认为您抱怨的问题在这里:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    for view in self.view.subviews {
        if view is UIScrollView {
            view.frame = UIScreen.main.bounds // *
        } else if view is UIPageControl {
            view.backgroundColor = UIColor.clear
        }
    }
}

删除我评论过的行。

(如果您还将最后一行的颜色更改为.red,作为实验,您将能够看到页面控件,并且您会看到文本视图在不同尺寸的设备上表现一致。)


推荐阅读