首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算特定字体和字体大小的文本字符串的宽度?

如何计算特定字体和字体大小的文本字符串的宽度?
EN

Stack Overflow用户
提问于 2009-08-25 03:52:38
回答 14查看 115.6K关注 0票数 96

我有一个可以显示一些字符的UILabel。例如"x“、"y”或"rpm“。如何计算标签中文本的宽度(它不会占用整个可用空间)?这是为了自动布局,如果另一个UILabel里面有较小的文本,那么另一个视图将有一个更大的框架矩形。当指定了UIFont和字体大小时,是否有计算文本宽度的方法?也没有换行,只有一行。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2009-08-25 10:50:23

您可以通过NSString UIKit Additions中的各种sizeWithFont:方法来实现这一点。在您的示例中,最简单的变体应该足够了(因为您没有多行标签):

代码语言:javascript
运行
复制
NSString *someString = @"Hello World";
UIFont *yourFont = // [UIFont ...]
CGSize stringBoundingBox = [someString sizeWithFont:yourFont];

这种方法有几种变体,例如。有些人考虑换行模式或最大大小。

票数 76
EN

Stack Overflow用户

发布于 2009-08-25 04:00:59

由于sizeWithFont已被弃用,我将更新我的原始答案,以使用Swift 4和.size

代码语言:javascript
运行
复制
//: Playground - noun: a place where people can play

import UIKit

if let font = UIFont(name: "Helvetica", size: 24) {
   let fontAttributes = [NSAttributedStringKey.font: font]
   let myText = "Your Text Here"
   let size = (myText as NSString).size(withAttributes: fontAttributes)
}

大小应为屏幕上“您的文本”的大小(以磅为单位)。

票数 89
EN

Stack Overflow用户

发布于 2014-02-28 04:20:46

sizeWithFont:现在已弃用,请改用sizeWithAttributes:

代码语言:javascript
运行
复制
UIFont *font = [UIFont fontWithName:@"Helvetica" size:30];
NSDictionary *userAttributes = @{NSFontAttributeName: font,
                                 NSForegroundColorAttributeName: [UIColor blackColor]};
NSString *text = @"hello";
...
const CGSize textSize = [text sizeWithAttributes: userAttributes];
票数 79
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1324379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档