2012-09-12 151 views
1

TextView.contentSize.width無法設置UITextView的.frame.size.width。根據內容大小屬性設置UIText視圖的寬度

[TextView setFrame:CGRectMake(TextView.frame.origin.x, TextView.frame.origin.y, TextView.contentSize.width, TextView.contentSize.height)]; 

的UITextView中的幀高度設定在contentSize.height財產工程,使視圖的幀比例,以適當的大小爲內容的當前垂直尺寸。出於某種原因,視圖框架的寬度不會以相同的方式響應。無論文本輸入的數量如何,它都保持相同的大小。

當我動態記錄UITextView的內容大小時,正如我在視圖中輸入文本一樣,height屬性更改(在每個換行符處),而寬度不變。讓我想知道寬度屬性在做什麼,它是幹什麼用的。

回答

1

嘗試這種方式..

UIFont *font = [UIFont fontWithName:@"Enriqueta" size:15]; 
NSString *text = @"Your text"; 
CGSize frameSize = [text sizeWithFont:font]; 
CGRect originalFrame = textViewA1.frame; 
textViewA1.frame = CGRectMake(CGRectGetMinX(originalFrame), CGRectGetMinY(originalFrame), frameSize.width, frameSize.height); 
+0

感謝。像上面一樣工作,直到我進行換行,其中我的UIText視圖的範圍繼續擴大。例如,如果有兩行,每行有5個字符,則UITextview寬度將是具有5個字符的單行寬度的兩倍。我正在研究一種計算最長線的方法,並將其用作寬度的度量。 – Mrwolfy

1

由於根據的UITextView的寬度應該是這樣的:

UIFont *myFont = [UIFont boldSystemFontOfSize:15.0]; //your font specification here 
NSString *strText = yourTextView.text; 
CGSize strsize = [strText sizeWithFont:myFont 
          forWidth:yourTextView.frame.size.width 
        lineBreakMode:UILineBreakModeWordWrap]; //get string size 
yourTextView.frame = CGRectMake(yourTextView.frame.origin.x,yourTextView.frame.origin.y,strsize.width,strsize.height+10); //change accordingly 
+0

我的代碼有什麼問題? –

+0

謝謝。工作,直到我做一個換行符,其中我的UIText視圖繼續擴大。例如,如果有兩行,每行有5個字符,則UITextview寬度將是具有5個字符的單行寬度的兩倍。我正在研究一種計算最長線的方法,並將其用作寬度的度量。 – Mrwolfy

相關問題