2013-07-07 58 views
0

嗨我有UITextView,我希望它的高度正好在键盘上方。我想提出一个笔记应用程序,我需要携带的UITextView了所以滚动easily.Here是代码: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; 

但是画面原来是这样的: enter image description here

+0

难道你没有问这里同样的问题http://stackoverflow.com/questions/17513713/keyboard-covering-uitextview-in-notes-app/17513863#17513863,? –

+0

是的,但我问了这个问题。 –

回答

2

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

这样做的权利是很难,但至关重要。不要忘记使用传递给键盘通知的信息字典中的所有信息,您需要读取新出现的键盘的高度,而不是硬编码值,您需要获取动画持续时间,以便重新排列视图具有相同的动画持续时间,并且还需要在编辑时响应事件 - 想象一下用户开始编辑,然后决定连接蓝牙键盘以使编辑任务更容易,或者他们开始​​使用连接的键盘进行编辑,然后使用键盘电池退出...

+0

谢谢!这工作! –

1

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

CGRect frame = self.textView.enclosingScrollView.frame; 
frame.size.height = 42; 
self.textView.enclosingScrollView.frame = newFrame; 
+0

什么是“enclosingScrollView?” –