2013-07-07 60 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?」 –