Swift: 出现键盘时 UIView 改变了大小

Swift: UIView changed size when keyboard appears

更新:

我在故事板上的视图有一个高度为 215 的视图,它可以向上滑动到 400 高度,也可以从 400 向下滑动到 215。

此视图有一个自动布局 0,0,0,0 的视图。在此视图中,我加载了 xib 文件。

xib 文件包含 arrowImage、UIView、"or" 标签和 2 个按钮。

xib 中的 UIView 包含文本字段和标签,并且其高度设置为 0,因为它不应该在开始时显示,只能在向上滑动时显示。

现在向上滑动时,我将故事板中的视图大小调整为 400,并在内部从包含文本字段的笔尖调整视图大小。

现在的问题是,当我点击进入文本框时,无论是哪一个。它将情节提要中的视图大小重新调整为 215,我不知道为什么会这样。

Gif 看看会发生什么:

GIF

你应该检查一下你的约束,如果你在你的项目中使用辅助编辑器,你很可能会遇到这种问题。在看到 gif 之后我最多可以说没有检查代码但我提出的一些解决方案是在您单击文本字段时使用特定约束的标识符更改约束或删除约束并通过代码实现所有内容。

这里有一些代码可以让您了解如何更新约束:

    view.constraints.forEach({r in

        //Here you check for the specific constrains
        //I suggest you naming similar constrains the same
        if r.identifier == "yourIdentifier" {

            //You change the constrain value
            r.constant = 6

        }

        //Update the view constrains
        view.updateConstraints()
    })

希望这是你的情况!