无论框架的 x 和 y 如何,UIView 始终位于屏幕底部 - Swift

Posted

技术标签:

【中文标题】无论框架的 x 和 y 如何,UIView 始终位于屏幕底部 - Swift【英文标题】:UIView always on bottom of screen regardless of frame's x and y - Swift 【发布时间】:2017-11-08 05:17:32 【问题描述】:

在模拟器中的 iPhone X 上,我的容器视图显示在标签栏下方(它位于屏幕底部)。

我想移动容器视图,使其位于选项卡栏的顶部,但无论我作为容器视图框架的 x 和 y 放入什么,它都不会改变。我只能改变高度。

谢谢。

代码:

//for custom interactive keyboard
override var inputAccessoryView: UIView? 
    get 
        return inputContainerView
    
    

lazy var inputContainerView: UIView = 

    let containerView = UIView()
    containerView.frame = CGRect(x: 50, y: 50, width: self.view.frame.width, height: 50)
    containerView.backgroundColor = UIColor.red

    return containerView
()

【问题讨论】:

你能告诉我完整的代码吗? 要发布的代码太多了。这是唯一相关的代码 我找到了解决方法。我实际上需要 containerView 来覆盖标签栏,所以我只是在 iPhone 10 上将其放大,并更改了视图内事物的一些约束。 【参考方案1】:

请说明您使用的是哪个版本的模拟器。 xcode 9.1 中 iPHONE X 的情节提要渲染有了显着改进。

在 iPHONE X 中确保完美 UI 的一些要点:

    启用安全区域布局指南。

    删除标签栏的高度限制,如果有的话。

    删除所有约束,参考 superview 并将它们替换为“安全区域”。

    清理并运行。

“iPHONE-X 模拟器渲染的 tabbar 添加到 viewcontroller 中仍然存在一些错误,但是 tabbarcontroller 工作正常。在我的情况下,更改 viewcontroller 模拟矩阵部分中底栏的值已经解决了问题。”

【讨论】:

在哪里启用安全区域布局指南?其他建议均不适用 我找到了解决方法。我实际上需要 containerView 来覆盖标签栏,所以我只是在 iPhone 10 上将其放大,并更改了视图内事物的一些约束。

以上是关于无论框架的 x 和 y 如何,UIView 始终位于屏幕底部 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何始终将 UIView 的底部与屏幕底部对齐

如何通过坐标/位置 (x,y) 查找 UIView

如何在 AutoLayout 中设置 UIView 的框架?

iOS:如何获取刚刚在界面生成器中设置的 UIView 的框架

如何获取使用自动布局的 UIView 的 x、y、宽度、高度

括号或相等的初始化程序的初始化顺序