Ios UITextView字包装意外行为
我有一个UITextView,其内容和帧大小宽度等于348,但只要一行上的文本宽度超过338.61,就会发生换行。有人知道为什么会这样吗?如何访问UITextView用于动态换行的宽度?从iOS 7开始,是的。它是Ios UITextView字包装意外行为,ios,ios7,uiscrollview,uitextview,Ios,Ios7,Uiscrollview,Uitextview,我有一个UITextView,其内容和帧大小宽度等于348,但只要一行上的文本宽度超过338.61,就会发生换行。有人知道为什么会这样吗?如何访问UITextView用于动态换行的宽度?从iOS 7开始,是的。它是textContainerInset和lineFragmentPadding的组合 UITextView *textView = ...; CGFloat wrappingWidth = textView.bounds.size.width - (textView.textContai
textContainerInset
和lineFragmentPadding
的组合
UITextView *textView = ...;
CGFloat wrappingWidth = textView.bounds.size.width - (textView.textContainerInset.left + textView.textContainerInset.right + 2 * textView.textContainer.lineFragmentPadding);
这是一个值得了解的价值。您可以在boundingRectWithSize:
调用中使用它,例如:
CGRect boundingRect = [text boundingRectWithSize:CGSizeMake(wrappingWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin // this is important
attributes:@{ NSFontAttributeName: textView.font } // and any other attributes of your text
context:nil];
同样酷的是,您可以设置
textContainerInset
和lineFragmentPadding
,因此,如果您想增加此设置或使用不带插入的UITextView
(例如,它与UILabel
匹配),您可以。上面的答案没有错,但我一直在研究UITextView的换行行为,发现尽管可以调整textview的contentSize和textContainer的相应大小,但还有一种改变换行位置的方法(使用自动布局时)是将SuperView的尾随空间设置为负值。这将允许用户将换行功能向外推到右侧。这项研究还没有完成,但这一技巧应该可以帮助任何试图更好地控制UITextView单词包装行为的人
完成后将发布代码,但现在调整UITextView的尾部约束将移动单词/字符换行的最右侧位置 非常感谢。这真的很有帮助。我在别的地方找不到这个。