为啥我的设置切断了我对边距的限制?

Posted

技术标签:

【中文标题】为啥我的设置切断了我对边距的限制?【英文标题】:Why Is My Set Up Cutting Off My Constraints To Margins?为什么我的设置切断了我对边距的限制? 【发布时间】:2021-09-29 08:54:26 【问题描述】:

我正在使用连接到 UIViewController 的情节提要:

更新:

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

以下是转换到不同设备的方式。

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

Project Github HERE

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

【问题讨论】:

但是教程代码不是bug所在的地方。是吗?摆脱所有可以摆脱的东西正是您隔离问题并解决问题的方式。 如果教程代码有同样的问题,请告诉我在哪里以及如何引出它。这是我之前问的。 好的,很抱歉造成混乱。这与我意识到的教程代码不同,所以我很高兴 convo 让我检查这个......现在的代码就是你要问的。感谢您的耐心等待... 【参考方案1】:

你的代码/故事板有很多问题,但我认为你抱怨的问题在这里:

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,作为实验,您将能够看到页面控件,并且您会看到文本视图在不同大小的设备。)

【讨论】:

好的哇,首先,非常感谢您,非常感谢您花时间打开它并发现问题。现在我想知道您认识到的许多其他问题是什么,您是否愿意制作您的版本以便我可以查看它? (如果不是我理解)。您对如何处理它的说明带有“这非常简单,只需执行此操作”的潜台词,但作为初学者,它并不那么明显,我感到受到为此制作的教程的限制,因为大多数教程都来自 swift 3 并以某种方式引起了类似的问题,我确实想学习最好的方法,这在你的书中吗? 我注意到的主要事情是:故事板中不应该有从页面视图控制器到任何东西的segue;并且,将视图控制器数组加载为页面视图控制器的子级是错误的——整个想法是当您被要求创建下一个/上一个视图控制器时。

以上是关于为啥我的设置切断了我对边距的限制?的主要内容,如果未能解决你的问题,请参考以下文章

浏览器对边距的支持:自动

限制为边距的堆栈视图不会留下任何余量

为啥我的地图视图不使用全屏约束?

html所有关于内边距外边距的标签属性

为啥我在 ScrollView 中的 UIView 不遵守它的高度限制?

如何定位具有相同边距的 div 左、右和上