我有一个UIView,我添加了一个可编辑的UITextView,
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(5, 5, 219, 47)];
[self addSubview:textView];
textView.font = [UIFont systemFontOfSize:14];
Run Code Online (Sandbox Code Playgroud)
当我键入它不会自动下降.有人有个主意吗?
Mar*_*man 52
只是想通了你必须使用长度> 0
NSRange range = NSMakeRange(textView.text.length - 1, 1);
[textView scrollRangeToVisible:range];
Run Code Online (Sandbox Code Playgroud)
无论如何,为我工作.
Fra*_*sch 11
要滚动到我试过的缓冲区的末尾
[textView scrollRangeToVisible:NSMakeRange([textView.text length]-1, 1)];
Run Code Online (Sandbox Code Playgroud)
但什么都没发生.相反,这有效
textView.selectedRange = NSMakeRange(textView.text.length - 1, 0);
Run Code Online (Sandbox Code Playgroud)
我想你必须这样做
[textView scrollRangeToVisible:[textView selectedRange]];
Run Code Online (Sandbox Code Playgroud)
在textDidChange.
以编程方式向文本框添加文本时,我发现我还需要添加“[textView layoutIfNeeded]”以在正确计算新滚动位置之前进行设置。
例如:
[newString appendFormat:@"%@\n",addText];
textView.text = newString;
[textView layoutIfNeeded];
NSRange range = NSMakeRange(textView.text.length - 2, 1); //I ignore the final carriage return, to avoid a blank line at the bottom
[textView scrollRangeToVisible:range]
Run Code Online (Sandbox Code Playgroud)
如果没有这个添加,文本框有时不会滚动,或者每次添加一行数据时都会滚动几行。
如果找到解决方案
我将textview放入视图并将视图设置为clipToBounds = YES然后我将textView的高度设置为70
这解决了问题。
非常奇怪的解决方案,但它终于起作用了:)
| 归档时间: |
|
| 查看次数: |
38579 次 |
| 最近记录: |