我正在爲使用UITextView的iPad開發一個簡單的文本編輯應用程序。我總是有一些UIScrollView和UITextView的問題。我想我只是從這兩件事中預料到太多東西。如何完全禁用UITextView的滾動?
當我將myTextView.text設置爲另一個NSString實例時,滾動會自動發生。我可以防止這種滾動設置
myTextView.scrollEnabled = NO;
myTextView.text = newText;
myTextView.scrollEnabled = YES;
但是,如果我改變myTextView的財產的selectedRange,滾動發生。
具體而言,如果selectedRange的範圍發生在當前屏幕上的文本中,則不會發生滾動。
例如,如果通過點擊「全選」屬性選擇所有文本,則不會發生滾動。但是,如果我通過將selectedRange設置爲NSMakeRange(0,[myTextView.text length])來選擇所有文本,則會發生滾動至END(最後一個插入位置)的情況。
爲了解決這個問題, 1)我保存了myTextView的原始內容偏移量。
CGPoint originalOffset = myTextView.contentOffset;
// change myTextView.selectedRange here
myTextView.selectedRange = originalOffset
但沒有任何結果。
2)我使用NSTimer在幾秒鐘後調用了上面的代碼,並且正確滾動返回到原始位置(偏移)。然而,滾動到第一次發生,然後到頂部..
有沒有辦法來完全防止UITextView的滾動片刻?
非常感謝!我從stackoverflow得到了很多幫助。希望我很快能回答很多問題! – pnmn 2011-01-10 22:54:42