我正在努力像在iMessage中那样创建聊天气泡。我必须使用UITextView来利用DataDetectors来自动检测URL,电话号码和地址。我的视图层次就像;
-UITableViewCell
-ContentView
-ChatBubbleContainerView
-UITextView
ChatBubbleContainerView
的约束条件
ContainerView
UITextView具有以下约束条件
ChatBubbleContainerView
我想实现一种行为,使文本视图根据其内容自动扩展其高度和宽度,例如文本。但是文本视图没有内部内容大小。
这些是我尝试过并得到错误结果的结果
intrinsicContentSize
属性,但它是
也不行。ChatBubbleContainerView
设置宽度约束并将其更改为sizeThatFits()
方法的结果ChatBubbleContainerView
设置宽度约束并将其更改为text.boundingRect
方法的结果这些是我得到的结果
当我尝试使用UILabel
进行相同的布局时,它可以正常工作。如您所知,UILabel
具有内在的内容大小。
谢谢
答案 0 :(得分:0)
TextView约束很好,您需要对ChatBubbleContainerView约束进行一些更改。
ChatBubbleContainerView约束:
顶部,顶部,底部-> 10分
MaxWidth(GreaterThanOrEqual)设置为contentView,例如 0.85 ,或者您可以将TrailingConstraint与maxConstant(GreaterThanOrEqual设置为contentView。)
您需要设置maxWidth,然后只有ChatBubbleContainerView会响应。