Swift - UIButton 没有固定在屏幕底部
Posted
技术标签:
【中文标题】Swift - UIButton 没有固定在屏幕底部【英文标题】:Swift - UIButton is not pinning to the bottom of the screen 【发布时间】:2021-06-25 19:09:34 【问题描述】:我无法将 UIButton 固定到我的 UIViewController 的底部,(如果有帮助,有一个标签栏)。 这是 UIButton 的约束。
最初,一切正常,但自从我向应用程序添加 iPad 支持后,我遇到了问题。在 iPad 上,UIButton 固定在屏幕底部,位于标签栏的正上方。但是在 iPhone 上,底部有这个空白。
我尝试了什么 做了一些研究,我发现有时拆分视图控制器会导致灰条,我添加了这行代码来解决它并修复了底条,但是这个约束问题仍然让我很头疼。
self.extendedLayoutIncludesOpaqueBars = true
iPad 视图层次结构
iPhone 视图层次结构
【问题讨论】:
尝试取消选中“限制到边距” 您的视图层次结构是什么样的?您将底部约束固定在什么位置?尤其是 ScrollView 可能会导致锁定问题,因为 iphone 和 iPad 之间的差异可能是由视图其他部分中的硬编码值引起的。 @isaacthedev 您已添加 ipad VH,但缺少 iphone 一个 如果可能请添加演示项目链接 @isaacthedev 请分享控制器 xml。 【参考方案1】:您可以在 Xcode 上选择根据屏幕大小改变约束。
您可以创建两种约束,一种适用于 iPad,一种适用于“经典”iPhone。
在这里,如果我在变体期间创建新约束,然后我可以在右侧窗口中选择您希望在哪个变体上安装约束。
关于那个here有一个完整的话题
【讨论】:
【参考方案2】:删除当前的约束并尝试取消选中“约束到边距”按钮。
【讨论】:
如果我这样做,它可以在 iPhone 上运行,但不能在 iPad 上运行【参考方案3】:尝试将约束设置为 View 而不是 SafeArea
【讨论】:
【参考方案4】:1- 给它一个恒定的高度,例如 40
2- 设置约束时,取消选中(约束到边距)
3- 给它一个与超级视图 0.8 成比例的宽度约束
注意 1:如果您不想给它一个固定的高度,您可以执行相同的步骤 3,但高度不是 0.8,但可能是 0.2 到更少,具体取决于您的设计。
注意2:你可以使用滚动视图,它会让你很容易
【讨论】:
以上是关于Swift - UIButton 没有固定在屏幕底部的主要内容,如果未能解决你的问题,请参考以下文章