我正在尝试自己制作消息泡泡。我正在使用自定义UITableViewCell
类,并尝试在其中调整UITextView
的大小。
但UITextView
正在调整其高度,但不是宽度。
这就是我尝试过的。
我创建了一个xib;
正如您所看到的,xib中有6个约束。尾随,前导,顶部和底部空间约束以及最大/最小宽度约束。
以下是自定义UITableViewCell
' awakeFromNib(:)
方法;
override func awakeFromNib() {
super.awakeFromNib()
self.messageContent.layer.cornerRadius = 5
self.messageContent.clipsToBounds = true
self.messageContent.editable = false
self.messageContent.scrollEnabled = false
self.messageContent.sizeToFit()
self.messageContent.layoutIfNeeded()
let size = self.messageContent.sizeThatFits(CGSizeMake(messageContent.contentSize.width, CGFloat.max))
messageContent.bounds.size = size
// Initialization code
}
当我运行此代码时,结果如下;
这有点工作但不是一直。我希望在1行之后但在此之前使宽度恒定且高度灵活;我的意思是如果有一行,文字我想使宽度灵活和高度恒定。
如果有人帮忙,我会很高兴。 快乐的编码!修改
当我尝试删除尾随约束或减少它时,布局就像这样;
答案 0 :(得分:0)
您可以通过更改xib来仅使用没有约束的UITextView来实现此目的。
然后使消息类看起来像这样,它将最大宽度设置为300但如果文本较少则会缩小,并且高度将根据需要增长。
import UIKit
class MessageTextView: UITextView {
override func awakeFromNib() {
super.awakeFromNib()
layer.cornerRadius = 5
clipsToBounds = true
editable = false
scrollEnabled = false
sizeToFit()
layoutIfNeeded()
let size = sizeThatFits(CGSizeMake(contentSize.width > 300 ? 300 : contentSize.width, CGFloat.max))
bounds.size = size
}
}
答案 1 :(得分:0)