在运行时更改 UITextField 的高度

Change the height of a UITextField in runtime

我创建了一个带有一些子视图和动画的 UITextField 子类 - 看起来像一个 material 设计文本字段(我想把它放到网上供大家在完善它时使用)。

我面临的问题很有趣。当我使用 Interface Builder 创建 UITextField 时,之后我无法更改此 UITextField 的高度。我正在使用此代码但没有任何反应:

    let theFrame = CGRect(origin: 40, size: CGSize(width: 200, height: 40))
    myUITextField.frame = theFrame

当我在代码中创建 myUITextField 时(在 viewDidLoad 方法中),上面的代码有效。当我使用界面构建器创建它时,该代码不起作用。

有什么想法吗?

如果您使用的是自动版式,这可能是目前高度没有变化的原因,您可以通过更改 constant 上的 constant 来更改 UITextField 的高度=12=] 控制高度。要在使用 IB 时获得该约束,您可以 ctrl-drag 从约束到您的 UIViewController.

为了能够在运行时编辑您使用界面生成器放置的 UITextField 的高度,您应该将该文本字段的 "border" 属性 更改为 none,使用界面建设者。

我在创建这个子类时问过这个问题:https://github.com/KaanEmec/UIMaterialTextField

欢迎使用。