UITextView 中不需要的滚动空间
Posted
技术标签:
【中文标题】UITextView 中不需要的滚动空间【英文标题】:unwanted scroll space in UITextView 【发布时间】:2014-11-25 07:09:59 【问题描述】:我有一个 UITextView 覆盖故事板中的整个视图控制器设置。顶部布局指南、底部布局指南、前导边距和后边距都有限制。
我已注册到键盘通知以调整内容插入,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardAppeared:)
name:UIKeyboardDidShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDisappeared:)
name:UIKeyboardDidHideNotification
object:nil];
keyboardAppeared 的实现:
- (void)keyboardAppeared:(NSNotification *)notification
NSDictionary *notificationUserInfo = [notification userInfo];
CGRect keyboardRect = [[notificationUserInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
self.textView.contentInsets = UIEdgeInsetsMake(0, 0, keyboardRect.heignt, 0);
self.textView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, keyboardRect.height, 0);
keyboardDisappeared 的实现:
- (void)keyboardDisappeared:(NSNotification *)
self.textView.contentInsets = UIEdgeInsetsZero;
self.textView.scrollIndicatorInsets = UIEdgeInsetsZero;
这里的问题是当出现键盘时,如果 textView 文本较少,则 textView 中会出现不需要的滚动。当文本大小超过 textView 高度时,不会出现不需要的滚动。
请帮忙!
【问题讨论】:
看到这个答案***.com/questions/25782352/… 链接没有帮助。我在文本末尾得到了额外的空间。我已经自动将AdjustScrollViewInsets 切换为NO。 【参考方案1】:解决了。这个问题非常罕见,但如果有人被卡住了,这就是解决方案。
我以前在 viewDidLoad 中设置 textView 的文本是这样的:
- (void)viewDidLoad
[super viewDidLoad];
[self.textView setScrollEnabled:YES];
[self.textView setText:#-some text-#];
[self.textView setScrollEnabled:NO];
我关闭了滚动,以便文本视图在设置文本时不会滚动到底部。这就产生了额外滚动的问题。 (我不知道为什么)
我用这个方案解决了这个问题:https://***.com/a/3287419
【讨论】:
以上是关于UITextView 中不需要的滚动空间的主要内容,如果未能解决你的问题,请参考以下文章
iOS6 和 UITableView 中的屏幕外 UITextView
调整表格视图单元格以显示 UITextView 和 UIWebView
UITextView insertText 调用 shouldChangeTextInRange: replacementText:
自动滚动到放置在 UITableViewCell 内的 textView 光标在 iOS11 中不起作用