需要一些幫助。我正在構建一個聊天應用,並希望聊天textView根據文本的寬度進行調整,因此如果短消息,textView會相應地進行調整。我使用自動佈局,但似乎無法弄清楚如何根據textView的文本行長度動態調整約束的常量。謝謝。UITextView動態寬度與文本iOS
我怎麼會有現在:
約束:
需要一些幫助。我正在構建一個聊天應用,並希望聊天textView根據文本的寬度進行調整,因此如果短消息,textView會相應地進行調整。我使用自動佈局,但似乎無法弄清楚如何根據textView的文本行長度動態調整約束的常量。謝謝。UITextView動態寬度與文本iOS
我怎麼會有現在:
約束:
謝謝balkaran。使用尾隨約束設置爲> = 0的標籤結束了訣竅 – dcotter
歡迎@dcotter :) –
編程,你可以不喜歡,
目標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;
使用這個自定義的TextView類 「HPGrowingTextView」,這對我的工作。
下面是鏈接: -
你使用的是UITableViewAutomaticDimension –
是的,但只是似乎照顧了單元格的高度 – dcotter