如何根据自动缩小的标签为多个标签设置相同的字体比例?

2023-11-30

我有 4 个标签视图,其中一个应该显示较大的数值并设置为自动收缩。

我的要求是在自动调整该标签以适合其内容后,将该标签设置为与其他标签相同的字体缩放或大小,以便文本内容在整个过程中看起来统一。

设置最小比例因子对其他标签没有帮助,因为它们的内容在帧限制内。


无法直接执行此操作,因为查询文本已缩小以适合的标签的字体,仍然显示原始字体大小。您必须通过迭代越来越小的字体大小来完成此操作,直到找到适合标签的大小,然后使用该字体大小来调整其他标签。在我下面的示例中,labelLong 是文本可以收缩的标签,labelShort 是文本不需要收缩的标签。

-(void)updateFont {
    NSStringDrawingContext *ctx = [NSStringDrawingContext new];
    ctx.minimumScaleFactor = 1.0;
    UIFont *startingFont = self.labelLong.font;
    NSString *fontName = startingFont.fontName;
    CGFloat startingSize = startingFont.pointSize;
    for (float i=startingSize*10; i>1; i--) { // multiply by 10 so we can adjust font by tenths of a point with each iteration
        UIFont *font = [UIFont fontWithName:fontName size:i/10];
        CGRect textRect = [self.labelLong.text boundingRectWithSize:self.labelLong.frame.size options:NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:font} context:ctx];
        if (textRect.size.width <= [self.labelLong textRectForBounds:self.labelLong.bounds limitedToNumberOfLines:1].size.width) {
            NSLog(@"Font size is: %f", i/10);
            self.labelShort.font = [UIFont fontWithName:fontName size:i/10];
            break;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据自动缩小的标签为多个标签设置相同的字体比例? 的相关文章

随机推荐

  • 环境属性不会传递到 Elastic Beanstalk 中的应用程序

    部署我的 Django 项目时 未配置数据库设置 因为 RDS HOSTNAME in os environ回报false 事实上 部署时没有可用的环境属性 所有这些属性在部署后都可用 Running opt elasticbeanstal
  • JQuery 验证插件 - 无法验证类

    我正在尝试使用 jQuery 验证插件来验证类而不是 ID 尽管有许多线程似乎接近回答这个问题 我无法让它们中的任何一个工作 我只是有一个包含大量动态生成的重复表单字段的表单 因此我自然无法为 ID 添加规则 因为不知道会有多少个 因此 我
  • 如何更好地从 ASP 编辑 html?

    您好 我有一个 ASP 脚本需要编辑 实际上 我需要重新设计它发送的电子邮件 因此我需要编辑其中的 HTML 问题是 html 来自 asp 文件 每一行都有 HTML HTML 其中 加上一些其他更改 我需要从 ASP 中获取 HTML
  • Javascript 用实际字符替换 HTML 字符代码

    我有一个 HTML 输入文本 其值是从相关的 div 填充的 我的问题是 div 包含类似的字符 amp 它将正确显示为 登录 div 但将文本复制到文本框时 amp 将显示 我怎样才能转换 amp to and lt to lt nbsp
  • 如何向未绑定的 DataGridView 添加行?

    我有一个DataGridView在 C 中 我想在 a 中添加行程序化的方式 没有数据绑定到网格 但是当我调用时dataGrid Rows Add 它抛出一个System InvalidOperationException 我查遍了互联网
  • 在没有适当 REST-Api 的情况下测试 RestSharp 的反序列化

    EDIT 问题的答案可以在 John Sheehan 的第一条评论中找到 我想用雷斯特夏普作为我的项目的休息客户端 由于REST服务器尚未运行 我想在没有服务器的情况下测试客户端 我的主要关注点是返回的 XML 响应的反序列化 是否可以在没
  • Vue.js 2 中 v-for 语句内的转换组

    我有一个projects我之后填写的对象axios称呼 然后我就循环了projects对象使用v for指示 这是代码 ul class row projects list li project project name br li ul
  • WebGL 浮点模数行为

    我遇到以下片段着色器的奇怪行为 varying vec3 worldSpaceCoords uniform float rows void main float testNumber 7 0 vec4 outputColor vec4 0
  • 如何按第一个元素(字符串)按字母顺序对元组列表进行排序[PYTHON] [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我有一个像这样的元组列表 peter 1 mary 5 anthony 6 brandon 4 如果我想对这个列表进行排序并得到类似的内容 anthony 6 brandon
  • matplotlib pyplot.show:无效的 RGBA

    我只需要绘制 3D 散点图 from mpl toolkits import mplot3d from matplotlib import pyplot as plt ax plt axes projection 3d ax scatter
  • 以编程方式从图像中提取文本

    我正在寻找一种编程方式来检索图像上的文本 我不知道是否有任何此类工具可用 我需要先下载图像 然后从中提取文本 有没有任何编程方法可以做到这一点 超立方 OCR可以从图像中提取文本 你到底是什么意思extract
  • 替换失败的模板专门化

    考虑这个函数 template
  • 使用 MongoDB 聚合框架四舍五入到小数点后两位

    我正在使用 mongodb 聚合框架并进行一些计算 如下所示 db RptAgg aggregate group id Region RegionTxt Mth Month ActSls sum ActSls PlnSls sum PlnS
  • 优化列表视图,包含 1k 对象列表

    我想知道是否有任何优化的方法来创建一个可容纳超过 1k 对象的适配器 我尝试了以下方法 但结果仍然不乐观 A 视图支架模式 它有帮助 但当对象尺寸增加时 它开始出现问题 B 注意 我可以使用分页 api 来传递定义数量的对象 但我的场景中没
  • 如何在PHP编辑页面中选中单选按钮?

    在 php 形式中 我将数据从单选按钮获取到数据库 效果很好 但是在编辑页面中如何从数据库中获取选中的值 td align left valign middle td
  • Linq to Entities - SQL“IN”子句

    在 T SQL 中 您可以有如下查询 SELECT FROM Users WHERE User Rights IN Admin User Limited 您将如何在 LINQ to Entities 查询中复制它 有可能吗 你需要彻底改变你
  • 如何生成某个公历年到回历的日期

    我想自动适应或生成一年中的日子 从公历到回历 我的意思是您想选择或写入年份作为示例 选择2015年 获取公历 2015 年的所有日期 然后将其转换为回历并显示回历列表 所以你想返回 2 个列表 list1 公历天列表 vs 另一个列表2 h
  • 添加 QLPreviewController 作为子视图不会加载 PDF

    我正在尝试添加 QLPreviewController 的视图作为子视图 不 我不能使用导航控制器或模式 它仅显示 QLPreviewController 的结构背景 我创建一个并将其添加为子视图 QLPreviewController p
  • 如何设置自定义控件的描述以显示在工具箱中?

    我想在设计时添加一个文本 告诉设计者我的控件是什么到我的自定义控件中 就像这里的 VS 默认控件一样 我努力了 summary但这对我不起作用 如何做呢 你可以用以下方式装饰你的班级Description属性 然后 当您使用以下命令将控件添
  • 如何根据自动缩小的标签为多个标签设置相同的字体比例?

    我有 4 个标签视图 其中一个应该显示较大的数值并设置为自动收缩 我的要求是在自动调整该标签以适合其内容后 将该标签设置为与其他标签相同的字体缩放或大小 以便文本内容在整个过程中看起来统一 设置最小比例因子对其他标签没有帮助 因为它们的内容