iOS中實現獲取文字內容的寬高

2021-07-11 13:03:23 字數 1436 閱讀 8320

我們在進行ios開發的過程中,難免會要得到文字內容的寬高。我們可以把實現獲取得到的文字內容的寬高的方法封裝到nsstring類的分類中,在ios開發中也方便直接拿來使用。

例如:我們進行即時通訊的聊天功能開發時就會用到ios中tableview,將一段聊天內容顯示在cell中,如圖,紅色框框就是tableview中的cell:

當我們把要傳送的文字內容傳送出去時,最後文字內容就會顯示在聊天介面,我們在實際開發中就不但要對當前時間和頭像的顯示進行布局,還要對傳送出去的文字內容進行布局,這時就要得到文字內容的x值、y值,以及它的寬(width)和高(height),x和y可以很容易就可以得到,關鍵是要得到文字內容的寬和高,如圖紅色框框:

我們可以通過使用oc中nsstring的分類來實現,如下就是乙個封裝好的分類(在以後實際的開發中可以拿出來直接使用):

nsstring+extension.h

#import

@inte***ce nsstring (extension)

/** * 計算文字占用的寬高

* * @param font 顯示的字型

* @param maxsize 最大的顯示範圍

* * @return 占用的寬高

*/- (cgsize)sizewithfont:(uifont *)font maxsize:(cgsize)maxsize;

@end

nsstring+extension.m

#import "nsstring+extension.h"

@implementation

nsstring (extension)

- (cgsize)sizewithfont:(uifont *)font maxsize:(cgsize)maxsize

; cgsize textsize = [self boundingrectwithsize:maxsize options:nsstringdrawinguseslinefragmentorigin attributes:dict context:nil].size;

return textsize;

}@end

當我們要得到文字內容時就可以上面的**加到我們的專案檔案中去,我們通過nsstring物件呼叫- (cgsize)sizewithfont:(uifont *)font maxsize:(cgsize)maxsize方法就可以返回cgsize型別的文字寬高了。其中,font引數是我們設定的字型屬性(大小),maxsize是我們設定的文字內容的最大寬高。

IOS獲取螢幕的真實寬高

小弟最近在開發ios應用,卻發現乙個問題,ios7和ios8在橫屏模式下得到的寬高是不一樣的,豎屏是一樣的,但是在網上卻沒有找到類似的解決方法,於是自己寫了乙個方法,如要使用,直接貼上到viewcontroller即可 根據系統版本號得到真實的寬高 iswidth是yes,那麼代表得到寬度,是no代...

iOS 根據文字動態計算控制項的寬高

下面方法把根據文字多少確定控制項的寬高封裝了方法,開發中複製貼上呼叫即可。text 傳入字串文字 font 設定文字的格式大小 maxsize 設定最大的寬高限制,寬度依實際情況而定,高度最好寫為max,即高度不限制自動根據文字屬性確定。cgsize sizewithtext nsstring te...

獲取控制項的寬高

很多時候,在oncreate方法裡面我們需要獲取控制項的寬高,但是常用的方法只能在onresume方法之後才能呼叫 在此,有三種方法可以在oncreate方法裡面獲取到空間的寬高 方法一 int w view.measurespec.makemeasurespec 0 view.measurespe...