2014-10-29 87 views
1

我試圖使用textViewDidChange委託調用根據其內容的大小更改UITextView的高度。但是,在輸入第一行時,文本被向上推動一些,並且在輸入下一行時將文本更正爲舊位置,這對於添加的每個備用行都會重複。UITextView內容在增加高度的同時改變位置

func textViewDidChange(textView: UITextView!) { 
    var computedHeightDifference = textView.contentSize.height - textView.frame.size.height 
    if(computedHeightDifference != 0){ 
     textView.frame.size.height = textView.contentSize.height 
    } 

} 

我試着用textView.sizeToFit()完整的塊,但文中觀點閃爍,而不是在添加每一行(相同的行爲可以在備註字段,同時增加在手機應用新的聯繫人留意到。

我上傳的完整代碼上GitHub While entering first line While adding another line

回答

3

你沒有設置高度足夠大,你需要考慮文字容器的插圖。

這樣做:

func textViewDidChange(textView: UITextView!) { 
    var computedHeightDifference = textView.contentSize.height - (textView.frame.size.height + textView.textContainerInset.top + textView.textContainerInset.bottom) 
    if(computedHeightDifference != 0){ 
     textView.frame.size.height = textView.contentSize.height + textView.textContainerInset.top + textView.textContainerInset.bottom 
    } 

} 
+0

幫助。謝謝!我只看着'ContentInset'沒有注意到'TextContainerInset'。 – Jeswin 2014-10-29 10:23:52

相關問題