2011-10-09 61 views
1

我有以下問題:我有一個標準的UITextView,我彈出鍵盤後調整大小。我還看到了另一個視圖,我將其視爲動畫視圖(而不是附屬於鍵盤的標準附件視圖)。問題是我不希望文本被這個視圖隱藏。這是當我到達最後一行(橙色視圖=我的自定義配件視圖)會發生什麼:鍵盤配件視圖隱藏文字

enter image description here

理想情況下,我想有一個自動滾動應這種情況發生。但我不知道如何實現這一點,如果我在UITextView的最後一行。另外,scrollToVisible在這種情況下不起作用,我不知道我是否能夠使用contentInset獲得任何地方。

歡迎任何建議!謝謝。

編輯

我想我需要某種機制將允許以

  1. 做出的TextView只擴大到行權附屬視圖上面,如果我是在進入事最後一行
  2. 如果我不是直接在鍵盤上編輯LINE,那麼textview會展開到鍵盤。

這有道理嗎?我想,我需要的是contentInset的對立面。

我只是不想調整textView的大小,只是在配件視圖的上方,因爲它帶走了屏幕空間來顯示文本。

+0

不錯的圖片+1 – Coffee

回答

1

被解僱,我得到了解決方案 - 對不起,我想這是顯而易見的,但我花了整整一天來弄明白:

textOfPage.contentInset = UIEdgeInsetsMake(0, 0, 100, 0); 

這將抵消我的UITextView使最後一行就不會被擋住。 100以像素爲單位,並可以相應調整。

0

我會做的是調整的TextView在textViewShouldBeginEditing方法,以適應鍵盤和新添加的附件鑑於以上,然後調整回全屏幕時,鍵盤textViewShouldEndEditing

+0

實際上,如何獲取文本的最後一行並使用textViewDidChangeSelection查找其寬度,並且如果它比一定數字更寬,則會自動將新行字符附加到文本中? –

+0

至於你的第一個建議,恐怕它不會有什麼幫助,因爲如果有更多的文本,我想有額外的空間。想象一下,你想編輯第25行,並且還有更多行(例如第26,27,28行)。你的建議會使我的UITextView更小,使行26,27,28etc。如果我要編輯第25行,將不會顯示。 –

+0

至於你的第二個建議,如果用戶不想要這個輸入,我真的不想追加換行符。我想要的是以某種方式剪輯可編輯的視圖,但仍顯示其餘部分(如上圖所示)。 –