很多的時候如果只是要顯示一些簡單的短文本,比如確定、取消什麼的,乙個uilabel就足夠了。
但是某些情況下,文字較長。包含這些文字的view的高度取決於文字的高度。比如我們常見的
微博。雖然文字所佔的高度內容限制在了140字,但是使用者發的微博是140字內的多少字,
我們不清楚。那麼在用到uitableview的時候,每條微博所在的cell的高度都要根據其中包含的
文字及其他內容所需要的實際高度來進行設定。當然,此文只討**本的高度計算問題,而且
難度也只集中在文字的動態高度上。
長文字高度的計算沒有方便的方法,雖然簡單。在計算前必須要給出長文字所在view的寬度
和乙個無限高度,然後計算長文字實際使用的高度。由以上條件可以得出乙個計算公式:
實際高度 = f(text, view.width, 9999);
但是還有乙個因素不能忘記:字型(font )。用9999代表無限高度這個不用解釋了吧:
目前來說iphone的顯示高度還沒有9999這麼多。 但是這裡的無限高度可以看做是乙個常數。所以
從引數中去掉。最後的公式是:
實際高度 = f(text, font, view.width);
很幸運,上面公式裡的f,也就是對映關係非常簡單。從下面的乙個例子可見端倪。
1 - (cgfloat) calculatetextheight:(uifont *)font giventext:(nsstring *)text givenwidth:(nsuinteger)width
最後你可以用計算出來的不同長度文字的高度來設定包含這段文字的view的高度。如下所示:
1 - (
void) resizelabel:(uilabel *)thelabel shrinkviewiflabelshrinks:(bool)canshrink
全文完。如果對你有幫助,請點推薦。謝謝!
iOS 計算文字的高度
下列方法能夠比較簡單的計算文字的高度,其中ksystemmessagecelledgsize等為自定義的static 變數。其中頁新增了測試用的資料,希望多多注意!cgfloat computecellheight cgfloat width item hdbsystemmessage item i...
iOS 計算文字的高度
1 計算 單行文字高度 方法如下,返回 cgsize 型別 nsstring content 這是計算單行文字的方法 cgsize size content sizewithattributes 18為設定字型的大小 size.height 為文字的高度 2 計算多行文字高度 方法如下 為了演示先建...
C 在Winform下文字高度計算方法
首先明確一點,winform下的所有ui繪製都是基於gdi 的,所以網上能找到的關於文字高寬計算的都採用以下方式來進行 string content 目標文字 graphics g this.creategraphics this是指所有control派生出來的類,這裡是個form sizef si...