2010-04-30 83 views
0

我有一個UITextView的高度,我們說300.我想要的是當輸入的文本到達中途點,滾動開始,就好像它在底部的TextView中。基本上我想以編程方式在textView中設置滾動的開始點。有任何想法嗎?謝謝。UITextView滾動 - 人工限制

回答

0

你想這樣做是因爲鍵盤導致文本隱藏在它後面嗎?如果是這樣的話,只需在鍵盤提高時縮小文本視圖的大小(可能會動畫,以便在鍵盤增大時縮小),然後讓系統負責滾動。

如果您想讓文本以不同的方式滾動到默認值,那麼您應該重新考慮一下,對於習慣了滾動到達「正常」級別的用戶來說,看起來有點奇怪。

但是,如果你必須這樣做,也許你可以在UITextView被引發後使用UIImageView添加爲子視圖 - 將其視爲UITextView的非活動擴展。製作與UITextView相同寬度的圖像,將其設置爲適合您要求的正確高度,並放置它以覆蓋UITextView的下邊緣。它看起來像textview比它長,但textview的滾動將工作時,文本接近其實際的邊界,而不是你的假的。

我看不到任何東西在UITextView/UIScrollView/UIScrollViewDelegate做到這一點。

+0

謝謝,亞當。響應太大而無法發表評論。請參閱下面的「答案」。謝謝。 – 2010-04-30 05:46:24

+0

在開始/更新塊中的「假」tableView部分插入/刪除工作非常好,允許更新行高以適應和不用鍵盤。感謝給我這個機會讓我的想法更好,並更好地思考我的選擇。 – 2010-04-30 18:45:03

0

謝謝,亞當。我確實這樣做是因爲鍵盤導致文本被隱藏在後面,我會在一秒之內做到這一點。

你對UIImageView的建議正是我所計劃的,但是相反。我想要300高度的textView,用鍵盤覆蓋下面的部分,然後在組合的tableView的圓形底部部分的鍵盤上方有一個UIImageView條子,textView位於該底部。(textView在一個tableViewCell中部分/單元格tableView。)添加圖像的條子會使得鍵盤覆蓋的較大的textView看起來像一個小型的textView,當被解散和圖像被移除/恢復時,textView會變得更大,以允許用戶閱讀他們輸入的所有筆記。

使用我正在尋找的解決方案,滾動以停止textView中的任何位置,較小的textView將開始在恰好位於鍵盤正上方的銀色圖像正上方滾動。

現在到「只是大小textView」的建議。說起來容易做起來難。因爲textView是在一個分組的tableView中,在鍵盤存在的情況下,我在tableViewCell中創建了一個較小的textView,並帶有很好的圓角,但是當我調整textView的大小時,只有中心部分延伸(大約90%的圓角矩形位於中心),而不是側面的圓角(每邊寬度的5%保持不變)。接下來的想法是:無法擴展textView而不增加單元格的高度,因此...

...因此解決方案是調整單元格的大小;但涉及reloadData或開始/結束更新,它只適用於單元格或部分插入。然後我想添加一個新的部分,這樣reloadData就可以工作,但是我不得不關閉scrollView的滾動功能,這樣新的部分永遠不會被看到,而且我遇到了麻煩,儘管嘗試了每一種scrollEnabled = NO(在tableView,textView,scrollView,父級上)。

最後,向上移動整個屏幕的效果非常好,但是使用大型的textView,那麼當向上滾動時,我不得不防止在不可見的上部中鍵入,因此被拒絕。雖然我只是想到CGRect的大小。高度同樣減小,打字可能不會發生在不可見的部分 - 但我仍然失去了分組tableView的圓頂,所以在美觀上看起來更好 - 仍然被拒絕。

所以,那是我的故事,那是我的一天。任何人的幫助將不勝感激。

我認爲我最好的選擇是在tableView中添加「假」部分並將其設置爲隱藏狀態,這樣我就可以獲得新的單元格高度。但我仍然必須關閉tableView滾動或scrollView滾動textView中的滾動並不會不必要地移動整個屏幕,因爲隱藏區域的空間可能在那裏,因此可以滾動。