2011-07-13 25 views
2

我正在計算我的動態文本視圖的正確高度。但我在這裏沒有得到正確的高度。我該怎麼做才能獲得正確的身高。我必須展示一些阿拉伯文字。任何技巧,以獲得正確的大小。請幫助我如何計算我的動態文本正確的高度查看

CGSize size = [foundationTrimmed sizeWithFont:newsSecondPart.font constrainedToSize:    CGSizeMake(newsSecondPart.frame.size.width-11,10000)]; 
size.height = size.height + 50; 

CGRect newsSecondPartFrame = newsSecondPart.frame; 
newsSecondPartFrame.size.height = size.height; 
newsSecondPart.frame = newsSecondPartFrame; 

CGRect CGRectnewsImageFrame = newsImageView.frame; 
CGRectnewsImageFrame.origin.y = newsSecondPartFrame.size.height+40; 
newsImageView.frame = CGRectnewsImageFrame; 

scrollView.contentSize = CGSizeMake( 0, newsSecondPartFrame.size.height+CGRectnewsImageFrame.size.height+ 100); 

newsSecondPart.text = foundationTrimmed; 

回答

1

說兩個紅點的文本視圖是你的textview(在它的當前狀態)。

enter image description here

在TextView的頂部左側邊緣的紅點的座標爲(CGRectGetMinX(textview.frame), CGRectGetMinY(textView.frame))

textview右下角的紅點座標爲(CGRectGetMaxX(textview.frame), CGRectGetMaxY(textview.frame))

這是因爲UIViews座標系的幾何結構會導致「x」座標隨着向右移動而增加,而「y」座標隨着向下移動而增加,因此原點位於最左上角視圖的角落。

你想視圖的高度,使你有三種選擇:

選項1.第一個選項是減去底部y座標和頂部ÿ這樣TextView的座標:

int heightOfTextView = (CGRectGetMaxY(textview.frame)) - (CGRectGetMinY(textview.frame)); 

選項2.第二個選項是簡單地根據textview的邊界獲取最大y座標。首先,您應該瞭解視圖框架與其邊界之間的區別。幀和界限的這個定義是從this問題採取:

一個的UIView的邊界是矩形,表示爲位置(x,y)和尺寸(寬度,高度)相對於它自己的座標系( 0,0)。

UIView的框架是矩形,表示爲相對於它所包含的超級視圖的位置(x,y)和大小(寬度,高度)。

所以,你會爲選擇二做到這一點:

int heightOfTextView = CGRectGetMaxY(textview.bounds); 

選項3此選項實際上是做最簡單的方法:

int heightOfTextView = textview.bounds.size.height;

與任何三種選擇,你最終得到正確的textview高度,你可以把這個代碼放到你想要計算textview高度的任何地方。請注意:如果您使用setBoundsOrigin:更改邊界,則第二個選項將不起作用,但不太可能使用textview來做到這一點。

希望這會有所幫助!

相關問題