Ios 如何在Swift中根据用户类型调整UITextField的大小

Ios 如何在Swift中根据用户类型调整UITextField的大小,ios,iphone,swift,resize,uitextfield,Ios,Iphone,Swift,Resize,Uitextfield,我正试图在IOS8上用Swift编写一个消息传递应用程序。本质上,我试图模仿IOS中的短信应用程序,当你到达文本字段的边缘时,文本字段的高度增加,并产生一条新的线条。现在当我打字的时候,文字只是滚动到一边。如何防止侧面滚动,而不是调整文本字段的大小?我肯定会将UITextView与textViewDidChange:delegate方法结合使用。通过根据指定的约束测量文本的内容大小,可以跟踪内部文本何时更改,并相应地更新文本视图的宽度或高度 您还可以重新实现drawRect:以添加圆角边框或自定

我正试图在IOS8上用Swift编写一个消息传递应用程序。本质上,我试图模仿IOS中的短信应用程序,当你到达文本字段的边缘时,文本字段的高度增加,并产生一条新的线条。现在当我打字的时候,文字只是滚动到一边。如何防止侧面滚动,而不是调整文本字段的大小?

我肯定会将UITextView与textViewDidChange:delegate方法结合使用。通过根据指定的约束测量文本的内容大小,可以跟踪内部文本何时更改,并相应地更新文本视图的宽度或高度

您还可以重新实现drawRect:以添加圆角边框或自定义其层的属性,如cornerRadius

占位符还可以通过跟踪文本更改(无论是通过委托方法还是通知)来实现


我同意这不是最佳选择,但至少你仍然可以选择模仿UITextField行为。

使用textview而不是textfield。我想我使用textfield的原因是我可以有占位符文本和圆形边框……谢谢你的回答!是否有一种方法可以告诉我在textview中键入了多少行文本?您无法直接知道行数,但可以使用contentSize属性询问textview的内容大小。它会在您键入时自动更新。唯一的要求是强制其宽度为通过布局约束指定的宽度,或者仅在没有自动布局时设置其框架。否则,它将无法计算内容大小。