NSString 字体大小特定于框架宽度

2024-03-22

我在用drawRect对于文本显示,调用NSString。我正在尝试使用sizeWithFont自动调整字体大小(缩小),默认字体大小为 17,如果不适合宽度大小,则使用循环将字体大小减小 1。谁能帮助我如何实现这个?现在的例子就很好了,我只是将字体大小设置为 17.0

[[self.string displayName] drawAtPoint:CGPointMake(xcoord, ycoord) withFont:[UIFont boldSystemFontOfSize:17.0]];
CGSize size = [[self.patient displayName] sizeWithFont:[UIFont boldSystemFontOfSize:17.0]];
max_current_y = size.height > max_current_y ? size.height : max_current_y;
xcoord = xcoord + 3.0f + size.width;

好吧,那算了。下面是同一方法的修改版本,该方法采用 NSString 返回字体:

    -(UIFont*)getFontForString:(NSString*)string
               toFitInRect:(CGRect)rect
                  seedFont:(UIFont*)seedFont{
    UIFont* returnFont = seedFont;
    CGSize stringSize = [string sizeWithAttributes:@{NSFontAttributeName : seedFont}];

    while(stringSize.width > rect.size.width){
        returnFont = [UIFont systemFontOfSize:returnFont.pointSize -1];
        stringSize = [string sizeWithAttributes:@{NSFontAttributeName : returnFont}];
    }

    return returnFont;
}

调用方法如下:

NSString* stringToDraw = @"Test 123";

    CGRect rect = CGRectMake(100., 100., 100., 200.);
    UIFont* font = [self getFontForString:stringToDraw toFitInRect:rect seedFont:[UIFont systemFontOfSize:20]];
    [stringToDraw drawInRect:rect withFont:font];

代码适用于 iOS7+

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSString 字体大小特定于框架宽度 的相关文章

  • 如何使用QLPreviewPanel?

    我该如何使用QLPreviewPanel 我知道它以前不是公共 API 但在 10 6 中已经有了 如何使用它在标准 QuickLook 面板中显示文件预览 查看快速查看下载器 http developer apple com librar
  • 将 Swift 类添加到具有多个目标的 Objective-C 项目

    我有一个现有的 Obj C 项目 其中包含许多共享相同 AppDelegate 的目标 我想桥接一个由选定目标使用的快速类 当我有一个目标时 我可以轻松地做到这一点 当我向项目添加 swift 文件时 我选择所需的目标并生成必要的 brid
  • Quickblox 未读消息总数

    您好 如何获取 quicblox 中未读消息的总数 对于所有对话框 有直接的api调用吗 谢谢 这是从 Quickblox Swift 获取未读消息总数的工作代码 let dialogsIDs NSSet NSSet array QBReq
  • iOS 中的随机颜色

    我想让我的导航栏每次加载时都具有不同的颜色 我在 viewDidApear 中放置了以下代码 CGFloat hue arc4random 256 256 0 0 0 to 1 0 CGFloat saturation arc4random
  • 从 Angularjs 应用程序中的 iOS Webview 调用 Javascript 函数

    我的问题是 当我尝试从 UIWebView 中调用 AngularJS 应用程序中存在的 javascript 函数时 该函数无法识别 当我在典型的 html 结构中调用该函数时 该函数会按预期被识别 下面提供的示例 目标 C void v
  • NSImage 到 NSBitmapImageRep

    如何将 NSImage 转换为 NSBitmapImageRep 我有代码 NSBitmapImageRep bitmapImageRepresentation NSBitmapImageRep ret NSBitmapImageRep s
  • 检查自定义键盘扩展的完全访问权限

    我需要检查自定义键盘扩展的完全访问权限 我找到了这个链接 如何检查 iOS 8 中的 允许完全访问 是否已启用 https stackoverflow com questions 25472388 how to check the allo
  • NSlog 不打印新行 \r\n

    我尝试添加新行NSlog I run NSLog n r n r n json1 NSLog n r n r n json2 然而输出是 2017 03 29 16 09 50 InAppTestAfApp2 312 33527 attri
  • Xcode 不再识别测试

    我已经解决这个问题几天了 但我没有任何想法 我在 Xcode 中使用单元测试 效果很好 突然 Xcode 不再识别我的测试 如果我进入测试面板 它会显示我的测试为零 我其实有13个 运行单独测试或某些课程的能力现已消失 它不会在编辑器区域的
  • 向 UIControls 添加属性而不使用子类化

    我已将 UIButtons 嵌入到 TableViewCells 中 为了跟踪按钮属于哪个单元格 我想向 UIButton 添加 NSIndexPath 属性 我不想子类化 UIButton 有没有办法可以通过类别来做到这一点 编辑 我相信
  • XCTestCase:ld:未找到架构 x86_64 的符号

    我只是想实现我的第一个 XCTestCase 实现 一切都构建良好 但是当我执行测试用例时 我面临 构建失败 Undefined symbols for architecture x86 64 OBJC CLASS Node referen
  • 为什么 UIScrollView 在顶部留有空间并且不滚动到底部

    我是 Objective C 编程新手 我正在使用 UIScrollView 及其上的一些标签 图像和文本视图 我已关闭自动布局 并已尝试打开 调整滚动视图插图 标题中描述的情况 和关闭 不滚动 这是我插入 viewDidLoad 的内容
  • OCMock - 尽管是预期的,但仍调用了意外的方法

    这是经过测试的代码 if MFMailComposeViewController canSendMail MFMailComposeViewController mailComposeController MFMailComposeView
  • XCode 4.2 编译器错误

    当我使用 XCode 4 2 创建新项目 例如 单视图 iOS 应用程序 时 支持文件 文件夹中的 main m 文件如下所示 import
  • 使用 strftime 将 NSDate 转换为 String

    如何将 NSDate 转换为使用 strftime 说明符格式化的 NSString 你可以使用 strftime NSDate date NSDate date time t time date timeIntervalSince1970
  • 具有多个嵌入 Segue 的 ContainerView

    有没有办法让单个 ContainerView 具有多个嵌入序列 目的是让 ContainerView 根据按下的按钮来容纳一些不同的 ViewController 一次只能看到一个 我想使用嵌入序列 以便在 Interface Builde
  • 如何处理 iPhone 4s、5 和 6 屏幕尺寸,并使所有内容在所有设备上看起来相同

    我正在使用 Xcode 6 1 并且在我拥有的视图之一中包含许多标签 然而 这些标签在不同的设备中看起来不同 尽管我已经对所有标签添加了约束 但仍然面临同样的问题 如何在所有设备上获得相同的视图布局 如何使每个标签的宽度和高度灵活 取决于屏
  • 用强/弱自我打破保留周期

    我读过关于强 弱的帖子self打破保留周期 但我仍然对它们如何工作感到困惑 我理解使用 weak typeof self weakSelf self创建对自我的弱引用 但我对强引用感到困惑 据我了解 强引用是指对self这样它就不会在块结束
  • 如何对其中包含自定义对象的 NSMutableArray 进行排序?

    我想做的事情看起来很简单 但我在网上找不到任何答案 我有一个NSMutableArray对象 假设它们是 Person 对象 我想排序NSMutableArray通过 Person birthDate 这是一个NSDate 我认为这与这个方
  • UITableView 显示的行数多于 numberOfRowsInSection 中指定的行数:

    我希望我的 tableView 显示 6 行 其中包含文本 在本例中为 示例 据我所知 我有我的numberOfSectionsInTableView and numberOfRowsInSection 设置正确 请参阅下面的示例代码 NS

随机推荐

  • 如何修复 BBcode 正则表达式

    我有一个获取 BBcode 标签的正则表达式 除了一个小故障之外 它工作得很好 这是当前的表达式 x22 x22 1 以下是它成功匹配的一些文本及其构建的组 url http www google com 去 http www google
  • 将可选属性表示为 C++ 类成员

    我正在根据模式生成 C 代码 存在实体 每个实体包含属性 每个属性具有相应的数据类型 现在的问题是其中一些属性是 可选的 这意味着它们不必是类声明的一部分 然而 在C 中 某些东西要么是类的成员 要么不是类的成员 没有诸如 可选数据成员 之
  • Android 子模块中的数据绑定

    我有一个应用程序模块 让我们说 测试 测试 模块依赖于子模块 B 两者都启用数据绑定 在库模块 B 中 我使用数据绑定创建一个简单的活动 其目的是为了可重用性 例如 我可以创建一个基本登录屏幕并稍后在许多应用程序中使用它 下面是B包中的示例
  • Microsoft Visual Studio 和 C#:如何以可视方式向控件添加事件?

    如何使用 C 将事件处理程序添加到 Microsoft Visual Studio 2008 窗体中的控件 我可以手动执行此操作 但打开表单的 Designer cs 文件 但我找不到通过界面执行此操作的方法 在 MSVC 6 中 使用 C
  • 如何使用 Mysql Joins 而不是嵌套子查询来获得相同的结果?

    我有一些嵌套子查询 结果非常慢 我正在努力用 Mysql Joins 重写相同的代码 我希望有人可以帮助我 我想从数据库中除播放列表中的歌曲之外的所有歌曲中获取数据 之后我只想要播放列表中的歌曲 在这里你可以看到我的查询 提前致谢 Quer
  • 记录内存访问足迹

    I found mtrace https github com aclements mtrace克莱门茨博士 虽然很有用 但是在我需要的情况下却不能正常工作 我打算使用该记录来了解不同场景下的内存访问模式 有人可以分享相关经验吗 任何建议将
  • 在哪里可以找到“mysqldump”退出代码列表?

    我知道exit code 0 means No error I got exit code 2 这是什么意思 我在哪里可以看到完整的列表mysqldump退出代码 取自 MySQL 5 1 59 中的 client mysqldump c
  • Nagios(返回码 255 超出范围)

    我收到错误 返回代码 255 超出范围 http localhost nagios http localhost nagios 但是当我从 shell 运行命令时 它运行良好 如果您使用 NRPE 并收到 NRPE 无法读取输出 错误是因为
  • 为什么 CFileDialog::DoModal() 挂起?

    我在Win XP平台上用VS 6 0开发了一个相当大的C 程序 现在已经迁移到运行Win 7的新机器 仍然运行VS 6 0 该代码包含一个函数 用于实例化并运行 CFileDialog 对象 以从特定的初始目录查找并打开具有特定扩展名的 A
  • Linux:如何杀死睡眠

    更多的是一个概念性问题 如果我写一个 bash 脚本来做类似的事情 control c echo goodbye exit trap control c SIGINT while true do sleep 10 user wants to
  • AnimatedVectorDrawable 作为窗口背景。是否可以?

    我正在尝试使用AnimatedVectorDrawable作为放置在窗口背景中的启动动画 我使用官方给出的例子https developer android com reference android graphics drawable A
  • 确定用户是否属于本地管理员组

    我的问题 我正在使用 PInvoked Windows API 函数来验证用户是否属于本地管理员组 我正在利用GetCurrentProcess OpenProcessToken GetTokenInformationand LookupA
  • 广播时不支持回调

    在这里 我遇到了使用 nodejs 在 socket io 中进行回调的一个问题 io sockets to usersocketid emit receivemsg success 1 data message function deli
  • 了解如何正确处理 C++ 类常量

    考虑以下 namespace MyNamespace class MyClass public Public area private Private area protected Protected area Class Namespac
  • 如何加载位于 .NET Core 控制台应用程序文件夹中的程序集

    我正在 NET Core 平台上制作一个控制台应用程序 并且想知道如何加载程序集 dll 文件 并使用 C 动态功能实例化类 它看起来与 NET 4 X 有很大不同 并且没有真正记录下来 例如 假设我有一个类库 NET Core 它只有一个
  • 使用 Python 模拟 Xbox 控制器输入

    我希望我的 python 程序能够模拟 Xbox 控制器输入 如果可能的话 模拟拇指杆和开 关按钮 我找到了有关在 python 中使用 ctypes 模拟键盘输入的主题 例如这里 Python 模拟 keydown https stack
  • 通过 powershell 从 txt 文件中获取今天日期的特定文本

    我有一个文本文件 与此类似 This is a sample data This is a sample data This is a sample data Sat Jun 06 08 17 01 2015 WARNING Cannot
  • MySQL 中的 SELECT 整数范围。例如。 1,2,3,4,...,n;

    我需要在 MySQL 中选择整数范围 像这样的东西 SELECT RANGE 10 20 AS range returns 10 11 12 13 14 20 Why 我想从尚未注册的范围中选择随机电话号码 这是想法 SELECT RANG
  • 控制Android的默认音乐播放器或任何其他音乐播放器

    如何控制android或任何其他播放器的默认音乐播放器 我所说的控制是指暂停 播放 下一个等 我是否必须绑定服务 我尝试过使用IMediaPlaybackService但它不起作用 肯定有一条出路 因为我在安卓市场上看到过控制音乐播放器的应
  • NSString 字体大小特定于框架宽度

    我在用drawRect对于文本显示 调用NSString 我正在尝试使用sizeWithFont自动调整字体大小 缩小 默认字体大小为 17 如果不适合宽度大小 则使用循环将字体大小减小 1 谁能帮助我如何实现这个 现在的例子就很好了 我只