2011-09-29 77 views
0

一個子問題是:如何將文本拆分爲單獨的UITextView頁面?

如何確定UITextview的內置內部邊界是什麼?

我有一個很長的主文本字符串,我試圖分割成單獨的UITextView頁面,然後我可以從一個頁面滾動到一個UIScrollView頁面。我用下面的方法來確定一個字符串的一個UITextView的高度是什麼,該字符串是否超過限制高度:

-(NSNumber *)getHeightByWidth: (NSString *) myString 
        mySize: (UIFont *) mySize 
        myWidth: (NSNumber *) myWidth 

{ 
int intMyWidth = [myWidth intValue]; 

CGSize boundingSize = CGSizeMake(intMyWidth, CGFLOAT_MAX); 
CGSize requiredSize = [myString sizeWithFont:mySize constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap]; 
NSNumber *retNumber = [[NSNumber alloc] initWithFloat:requiredSize.height]; 
return retNumber; 

[retNumber release]; 
} 

我打電話使用以下cellFont作爲輸入mySize的getHeightByWidth方法:

UIFont *cellFont = [UIFont fontWithName:@"Arial" size:14.0]; 

的UITextView的是320個像素寬,但我注意到,該文本不會從左邊到右邊,因爲有這看起來是每邊約10像素的內部空間。所以當我調用getHeightByWidth時,我設置了myWidth =(320 - 10 - 10);但是在構建適合UITextView的字符串之後,最後一行通常會有間隙,可以用主字符串中的下一個字填充。

任何人都可以告訴我爲什麼這些文本的最後一行上的這些差距發生在使用UITextView這個過程?

回答

0

內置邊距由屬性contentInset表示。

您也可以自己配置邊距。

如果您在IB中有文字視圖,請查找內容插頁。值必須爲0,但仍顯示一些餘量。嘗試將它們設置爲負值,如-4或-8。

在代碼中,做一些喜歡 -

myTextView.contentInset = UIEdgeInsetsMake(-4,-8,0,0); 

你必須根據你找到合適的設置這些值。

HTH,

阿克沙伊

+0

這不回答這個子問題。我想知道UITextView的邊距是如何設置的,而不是如何設置邊距。 –

+0

答案本身就在我的答覆中。 'contentInset'屬性爲您提供了一個表示邊距的「UIEdgeInsets」。編輯我的答案! – Akshay

+0

在IB中,UITextView的內容插入值設置爲0.但是,我可以看到,文本從UITextView的邊緣縮進了每邊約10個像素。那麼有沒有一種方法可以確定這個10像素插值的值是多少? –

相關問題