0

嗨,我有 UITextView,我希望它的高度正好在键盘上方。我正在制作一个笔记应用程序,我需要启动 UITextView 以便它轻松滚动。这是代码:

CGRect keyboardBounds = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect frame = self.notesTextView.frame;
CGFloat height = self.notesTextView.frame.size.height;
height = frame.size.height;
frame.size.height -= keyboardBounds.size.height;
self.notesTextView.frame = frame;

然而画面变成了这样: 在此处输入图像描述

4

2 回答 2

2

这是您需要的答案:https ://stackoverflow.com/a/1127025/189804

做到这一点很难,但必不可少。不要忘记使用传递给键盘通知的信息字典中的所有信息,您需要读取新兴键盘的高度而不是硬编码一个值,您需要获取动画持续时间以便重新排列视图具有相同的动画持续时间,您还需要在编辑时响应事件 - 假设用户开始编辑,然后决定连接蓝牙键盘以简化编辑任务,或者他们在连接键盘和键盘电池的情况下开始编辑退出...

于 2013-07-08T02:01:26.187 回答
1

您需要调整滚动视图的大小。永远不要触摸 textview 的框架(除非你创建一个子类)。

CGRect frame = self.textView.enclosingScrollView.frame;
frame.size.height = 42;
self.textView.enclosingScrollView.frame = newFrame;
于 2013-07-07T22:22:34.597 回答