Swift3 iOS 在发生换行时设置 UITextView 高度

约亨·奥斯特赖歇

为了使我的 textView 根据内容调整其高度,我使用以下代码:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let contentSize = textView.sizeThatFits(textView.bounds.size)
    self.textViewHeight.constant = contentSize.height

    //textViewHeight is the height constraint of the textView defined in the storyboard.

    return true
}

问题在于,当发生换行时,它确实会识别出大小的变化。如果你按回车,它不会调整大小,直到你添加另一个字符。如果您编写足够的文本以使其换行,也会发生同样的情况。它只会在您放入另一个字符后调整大小。当您删除一个字符以删除一行时,也会发生同样的情况,您必须删除另一个字符以调整高度。我觉得这看起来很草率,因为 iMessage 和 Whatsapp 在您编写消息时不会共享这种行为。

我在这里想念什么?

博士 易卜拉欣哈桑 |

使用以下代码:

func textViewDidChange(_ textView: UITextView) {
let fixedWidth = textView.frame.size.width
let newSize = textView.sizeThatFits(CGSize.init(width: fixedWidth, height: CGFloat(MAXFLOAT)))
var newFrame = textView.frame
newFrame.size = CGSize.init(width: CGFloat(fmaxf(Float(newSize.width), Float(fixedWidth))), height: newSize.height)
self.textViewHeight.constant = newSize.height
}

快乐编码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

iOS 9 Swift,UITextView基于内容的高度

iOS Swift-动态增加UITextView和父UIView的高度

Swift UIScrollView的高度取决于UITextView的内容

iOS:在Swift中动态设置UITableView的高度

iOS 8 sizeThatFits for UITextView文本未返回正确的高度(AutoLayout)

在iOS 7中具有UITextView高度的UITableViewCell?

SWIFT-更改UITextView,xcode 6 GM的高度

Swift:自动调整单元格内 UITextView 的高度

Swift:用户编辑UITextView的高度后,UIScrollView不滚动

如何重置UITextView的高度

获取UITextView的内容高度

如何为动态增长的 UITextView 设置最小高度?

根据动态文本设置UITextView的宽度和高度

设置文本后通过自动布局获取UITextView动态高度

如何设置UITextView的高度以完全匹配其截断的内容?

UItextView动态地实现高度和链接调整器iOS 6 vs iOS 7

iOS / Swift:UITableViewCell高度问题

Swift /如何使用具有动态高度的UITextView INSIDE UITableViewCell具有动态高度

使用Swift3在iOS中为UIButton的'backgroundColor'设置动画

如何在 iOS swift 中订阅 UITextView?

iOS:从Interface Builder设置UITextView行距?

将UITableViewCell的高度调整为UITextView的高度

UITableview中的UITextview高度迅速

UITextView 高度不会改变

UITextView与UILabel高度计算

iOS中使用Swift 3的CollectionView动态高度

更改导航栏的高度iOS Swift

在iOS Swift中动态调整UITableViewCell高度

更新通过 Swift 3 中的 NSLayout 设置的 UITextView 大小