2015-03-31 85 views
0

我创建了一个带有一些子视图和动画的UITextField子类 - 看起来像材质设计文本框(我想将它放到在线供每个人在打磨时使用)。在运行时更改UITextField的高度

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

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

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

任何想法?

+0

您是否在使用自动布局? – Ian 2015-03-31 06:06:17

+0

myUITextField.frame = theFrame as cgrect – 2015-03-31 06:17:37

+0

如果您使用的是自动布局,那么您不能,您需要在您的界面构建器中禁用自动布局 – 2015-03-31 07:28:41

回答

0

为了能够在运行时编辑使用Interface Builder放置的UITextField的高度,应该使用界面构建器将该文本字段的“border”属性更改为none。

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

随意使用它。

1

如果您使用自动布局,这可能是高度目前还不改变的原因,你可以通过在NSLayoutConstraint改变constant控制高度改变你UITextField的高度。为了在使用IB的时候获得这个约束,你可以通过ctrl-drag从约束到你的UIViewController