1

現在設置好了,我在UIScrollView中有兩個UITextViews。關鍵是UITextViews本身不會滾動,隨着更多文本的添加,它們會變得更大(它們的內容)。 UIScrollView處理視圖的所有向上和向下滾動,而不管文本有多少(認爲類似於郵件視圖上方的主題視圖等Mail.app)。也就是說,我現在遇到了一個問題。當我以編程方式將文本添加到我的UITextView(在此代碼中,bodyText)時,由於某種原因,UIScrollView會自動滾動到底部。當UITextField文本發生變化時,UIScrollView滾動到底部

要添加文字我只是做:

NSRange selectedRange = [bodyText selectedRange]; 
NSString *selectedText = [bodyText.text substringWithRange:selectedRange]; 
bodyText.text = [bodyText.text stringByReplacingCharactersInRange:selectedRange withString:[NSString stringWithFormat:@"<b>%@</b>", selectedText]]; 

所以,舉例來說,如果我有2000個像素文本垂直的,目前正在滾動到第400位,然後添加文本某處周圍還有,在UIScrollView中會然後一直下降到2000.

我試圖通過繼承UISCrollView和覆蓋-setContentOffset,但凍結所有滾動然後停止它。

我的問題是,爲什麼它首先滾動到底部?當用戶點擊屏幕上其他位置的按鈕時,文本被添加,並且滾動與任何手指拖動或任何事情無關。

回答

0

在滾動視圖編程指南您將獲得:

製作可見

矩形也可以滾動一 矩形區域,使其 可見。當應用程序需要將當前在 可見區域之外的 控件顯示到可見視圖中時,這是特別有用的 。 scrollRectToVisible:動畫: 方法滾動指定的矩形 ,以便它在 滾動視圖中可見。如果動畫參數 爲YES,則該矩形以恆定速度滾動到 視圖中。與 setContentOffset:animated :,如果 動畫處於禁用狀態,則委託人爲 發送單個scrollViewDidScroll: 消息。如果啓用動畫, 代理會發送一系列 scrollViewDidScroll:消息,如 動畫演進。在 scrollRectToVisible:動畫: 滾動視圖的跟蹤和拖動 屬性也是沒有。

如果動畫爲 scrollRectToVisible啓用:動畫:,的 委託接收 scrollViewDidEndScrollingAnimation: 消息,提供通知 滾動視圖已經到達 指定的位置和動畫是 完成。

所以也許你可以使用這個功能來鎖定你的UITextView的可見性。

相關問題