Как показал kovpas, вы можете использовать ограничивающий прямоугольник в большинстве случаев, хотя не всегда гарантируется, что ограничивающий прямоугольник будет аккуратно помещаться вокруг текста. Поле с высотой 50 и размером шрифта 12 может не дать желаемых результатов в зависимости от конфигурации UILabel.
Запрос UIString в UILabel, чтобы определить его точные метрики и использовать их для лучшего размещения подчеркивания независимо от ограничивающей рамки или рамки, используя код чертежа, уже предоставленный kovpas.
Вам также следует обратить внимание на «ведущее» свойство UIFont, которое дает расстояние между базовыми линиями на основе определенного шрифта. Базовая линия - это то место, где вы хотите, чтобы ваше подчеркивание было нарисовано.
Посмотрите дополнения UIKit к NSString:
(CGSize)sizeWithFont:(UIFont *)font
//Returns the size of the string if it were to be rendered with the specified font on a single line.
(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
// Returns the size of the string if it were rendered and constrained to the specified size.
(CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
//Returns the size of the string if it were rendered with the specified constraints.