需要一些帮助。我正在构建一个聊天应用程序,并希望聊天textView根据文本的宽度进行调整,因此如果消息很短,则textView会相应地进行调整。我正在使用autolayout但似乎无法弄清楚如何根据textView的文本行长度动态调整约束的常量。感谢。
我现在如何拥有它:
约束:
答案 0 :(得分:1)
以编程方式,您可以这样做,
目标C
- (void)textViewDidChange:(UITextView *)textView {
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
}
夫特
let fixedWidth = textView.frame.size.width
textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
var newFrame = textView.frame
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)
textView.frame = newFrame;
答案 1 :(得分:1)
答案 2 :(得分:1)
答案 3 :(得分:0)
您可以删除超级视图的尾随空格以从文本长度获取宽度 你能试试吗?
答案 4 :(得分:0)
使用这个自定义TextView类“HPGrowingTextView”,它对我有用。
以下是链接: -