gpt4 book ai didi

iOS 7 autoresizing UITextView with AutoLayout 随机断线

转载 作者:行者123 更新时间:2023-11-29 03:00:29 28 4
gpt4 key购买 nike

我想要一个简单的 UITextView,它会自动调整大小以适应其内容。

使用 AutoLayout 这非常简单:我将 UITextView 添加到我的 View 中,设置两个约束以将 UITextView 锚定在左上角,禁用滚动,这就是它。

IB setup

预期的行为是每次我输入一个字符时,绿色 TextView 都会调整其框架的大小。但这仅部分起作用:对于某些文本, TextView 决定将其呈现在两行上,而不是仅在当前行的末尾添加新字符:

Examples of text rendering in a UITextView

我猜这与新的 TextKit 框架有关,我使用 NSLayoutManagerNSTextContainer 的属性来尝试控制这种行为,但是没有效果。

另请注意,如果我“硬编码” TextView 的宽度(例如使用宽度限制),字符会正确地附加在行尾,但随后我会丢失 TextView 的水平自动调整属性.

如何向 UITextView 表明我不希望它断行?

编辑:further testing之后,该错误似乎只出现在 32 位架构上。

最佳答案

有点 hack(并希望它在 iOS8 中得到修复)但以下内容阻止了它的发生:

- (void)textViewDidChange:(UITextView *)textView {

// uber hack to stop characters from jumping to the line below
if (textView.text.length == 1 && ![textView.text isEqualToString:@" "]) {
NSRange cursorPosition = [textView selectedRange];
textView.text = [NSString stringWithFormat:@"%@ ", textView.text];
textView.selectedRange = cursorPosition;
}

[textView invalidateIntrinsicContentSize];
}

让我烦恼了一段时间所以希望能帮助别人 :)

关于iOS 7 autoresizing UITextView with AutoLayout 随机断线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23368094/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com