带有文本的 UITextView 动态宽度 iOS
UITextView Dynamic Width With Text iOS
需要一些帮助。我正在构建一个聊天应用程序并希望聊天 textView 随文本的宽度进行调整,因此如果消息很短,textView 会相应地进行调整。我正在使用自动布局,但似乎无法弄清楚如何根据 textView 的文本行长度动态调整约束的常量。谢谢
我现在怎么样:
约束条件:
您可以删除尾随 space 到超级视图以从文本长度获取宽度
你能试试吗?
以编程方式,您可以这样做,
Objective 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;
}
Swift
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;
代替 UITextview 创建自定义 UILabel class 并设置约束,如下图所示。
使用这个自定义 TextView class "HPGrowingTextView",它对我有用。
下面是Link:-
请记住这个步骤
1 修复标签宽度设置为大于等于 >0
2 取其关系大于或等于 >0
的尾随约束集
需要一些帮助。我正在构建一个聊天应用程序并希望聊天 textView 随文本的宽度进行调整,因此如果消息很短,textView 会相应地进行调整。我正在使用自动布局,但似乎无法弄清楚如何根据 textView 的文本行长度动态调整约束的常量。谢谢
我现在怎么样:
约束条件:
您可以删除尾随 space 到超级视图以从文本长度获取宽度 你能试试吗?
以编程方式,您可以这样做,
Objective 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;
}
Swift
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;
代替 UITextview 创建自定义 UILabel class 并设置约束,如下图所示。
使用这个自定义 TextView class "HPGrowingTextView",它对我有用。
下面是Link:-
请记住这个步骤
1 修复标签宽度设置为大于等于 >0
2 取其关系大于或等于 >0
的尾随约束集