Skip to main content
 首页 » 操作系统

使用自动布局快速增长 UITextView

2024年01月01日64arxive

我想自动调整 UITextView 的大小,类似于 sms-app 或 whatsapp。我只找到了 objective-c 的解决方案,示例项目的代码太多了。我在 Swift 中需要这个。

问:当用户输入带有换行符的消息时,如何根据字体大小调整 UITextView 的大小?

请您参考如下方法:

您可以使用 UITextViewDelegate 来做到这一点。我不知道如何使用 AutoLayout 实现这一点。

func textViewDidChange(textView: UITextView) 
    { 
        var fixedWidth : CGFloat = textView.frame.size.width 
        var newSize : CGSize = textView.sizeThatFits(CGSizeMake(fixedWidth, CGFloat(MAXFLOAT))) 
        var newFrame : CGRect = textView.frame 
        newFrame.size = CGSizeMake(CGFloat(fmaxf((Float)(newSize.width), (Float)(fixedWidth))),newSize.height) 
 
        textView.frame = newFrame 
    }