2011-05-13 106 views
0

我試圖通過修剪所有文本光標後,再使用的NSString的sizeWithFont方法,像這樣制定出一個尺寸一個TextView的規模高達光標:不幸的是如何計算UITextView的邊距大小?

NSString *string = [myTextView.text substringToIndex:myTextView.selectedRange.location];   
    CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:myTextView.frame.size lineBreakMode:UILineBreakModeWordWrap]; 

,這永遠不會返回相當大的尺寸,可能是因爲文本有邊距,所以它的實際寬度小於UITextView的寬度(感謝this question的回答者爲此付出了努力)。

所以我需要計算出邊距的大小,並從UITextView的大小中減去該大小以獲得文本區域的實際大小。有誰知道這是怎麼做到的嗎?

回答

2

不幸的是,它看起來像答案是,有在UITextView中沒有保證金 - 你只需要通過將視圖後面,並使UITextView的窄模擬之一。如果您需要使用背景滾動文字,您可以聽取scrollViewDidScroll:

+0

對於scrollview指標問題,這個答案可能會有所幫助。 http://stackoverflow.com/questions/4343390/is-there-a-way-to-put-uitextviews-scroll-indicator-to-outside-uitextview – 2012-03-19 08:16:46

1

我建議

CGSize tSize = myTextView.frame.size; 
tSize.width -= 2 * myTextView.contentInset.left; 
tSize.height -= 2 * myTextView.contentInset.top; 
CGSize size = [string sizeWithFont:myTextView.font constrainedToSize:tSize lineBreakMode:UILineBreakModeWordWrap]; 
+0

我不在我的電腦,但我很確定我試圖刪除contentInset沒有成功 - 然後使用NSLog的contentInset值爲零。看起來他們正在使用其他東西來創建邊距。不過,我會驗證並回報。 – 2011-05-14 11:22:43

+2

是的,確認我很害怕 - 一個UITextView的contentInset值爲零。 – 2011-05-14 11:34:15