UILabel swift 中多行字符串的边界矩形

2024-02-03

我已经尝试了几个小时来找到boundingRect我有 UILabel 中的字符串,但似乎没有任何效果。

据我了解,boundingRect返回标签中实际文本的大小,而不是标签的大小或类似的内容。这是真的,对吧?

我有一个UILabel called messageLabel其中包含一些换行为无限行数的文本。

我现在的代码是这样的:

let labelRect = (message as NSString).boundingRect(with: messageLabel.frame.size, 
    options: .usesLineFragmentOrigin, 
    attributes: [NSFontAttributeName : messageLabel.font], 
    context: nil)

不幸的是,这为我的文本返回了完全错误的尺寸。

返回多行 UILabel 中文本尺寸的正确方法是什么?


Use:

let sizeToFit = CGSize(width: messageLabel.frame.size.width,
                       height: CGFloat.greatestFiniteMagnitude)
let textSize = messageLabel.sizeThatFits(sizeToFit)

Anyway, the way you did it should work as well (you can see on playground both functions return same size): Playground

我在游乐场中添加了一个示例视图,因此您可以看到,标签具有黑色边框,文本适合内部,并且比标签小。大小都是电脑正确的sizeToFit and boundingRect方法(但是boundingRect返回未舍入的值)。我已经使用这个计算出的尺寸在文本下创建了一个绿色背景视图,并且它适合它。

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

UILabel swift 中多行字符串的边界矩形 的相关文章

随机推荐

  • iOS:(Swift)如何显示距当前位置的距离并在注释副标题上存在注释

    我目前正在使用 Swift 语言开发基于 iOS 的地图应用程序 我想要一个建议 因为在我在地图视图上绘制所有引脚之后 我使用名为 Alamofire 的 JSON 框架从服务器接收数据 我希望地图上所有注释的副标题显示距用户当前位置的距离
  • Fabricjs,旋转对象后是否可以获得虚拟矩形的左、上、右位置

    旋转物体后是否可以获得虚拟矩形的左 上 右位置 您正在寻找的是边界矩形你的对象 获取边界矩形 忽略Vpt Object 返回对象边界矩形的坐标 左 上 宽 高 该框旨在与画布轴对齐 返回 具有 left top width height 属
  • 在源代码中保护密码?

    我的代码中有一个密码 需要连接到 sftp 服务器 混淆 或隐藏在代码中的最佳方法是什么 Thanks 不要将密码存储在源代码中 而是将其存储在 App Config 或 Web Config 内的受保护部分中 See 使用受保护的配置加密
  • C++ 在模板类中重载运算符<< [重复]

    这个问题在这里已经有答案了 可能的重复 为模板类重载友元运算符 https stackoverflow com questions 4660123 overloading friend operator for template class
  • 回历日期格式

    我有一些从网站下载的数据 其中一列包含回历日期 为了使该列成为正确的日期列 我应用了以下格式 但问题是 除非我输入单元格 通过双击或 F2 然后按 Enter 键 否则它不会被视为日期并向右对齐 因为行数很大 所以我使用的方法不实用 我尝试
  • php 中 HTTPRequest 的替代方案

    我在 php 脚本中使用 HttpRequest 类 但是当我将此脚本上传到托管提供商的服务器时 执行它时出现致命错误 致命错误 在第 87 行 中找不到类 HttpRequest 我相信原因是因为我的托管提供商的 php ini 配置不包
  • android模拟器的IP地址是多少,[重复]

    这个问题在这里已经有答案了 android模拟器的IP地址是多少 根据我在互联网上找到的几个信息 127 0 0 1 10 0 0 2或10 0 015从Web服务器 apache 调用模拟器 模拟器的端口是固定的吗 10 0 2 1 路由
  • 如何正确广播 NumPy 数组的数组索引

    简短的介绍 我有两个 numpy 数组 data data shape是一个包含 X 个条目的元组 indices indices shape是元组 X Y indices基本上是一个索引数组的列表 沿第二个维度的数组指定相应维度的索引列表
  • 在新 API 的两个单独文件中初始化 Firebase 引用

    我已升级到新的 API 但不知道如何在两个单独的文件中初始化 Firebase 引用 CASE 1 1st file var config firebase initializeApp config var rootRef firebase
  • ArrayList初始化相当于数组初始化[重复]

    这个问题在这里已经有答案了 我知道您可以在实例化期间初始化数组 如下所示 String names new String Ryan Julie Bob 有没有办法用 ArrayList 做同样的事情 或者我必须单独添加内容array add
  • 以编程方式运行 Ansible playbook?

    我有一个 python 应用程序 它调用下面的代码 并计划通过 Ansible API 以编程方式运行 Ansible playbook 而不是使用子进程之类的东西 下面的代码运行但实际上似乎没有执行任何内容 获取结果的输出只会给我一个看起
  • 如何在 bash 脚本中自动按 [ENTER] 继续

    我有一个 bash 脚本 可以帮助自动安装一些应用程序 One app requests that I press ENTER to continue or CTRL C to cancel How can I automate my sc
  • 风暴集群重复元组

    目前我正在开展一个项目 在该项目中我在四台 Unix 主机上设置了一个 Storm 集群 拓扑本身如下 JMS Spout 侦听 MQ 以获取新消息 JMS Spout 解析然后将结果发送到 Esper Bolt 然后 Esper Bolt
  • 引导程序中的字形不显示

    div class container fluid div class sidebar left div class well h5 Administration h5 ul class administration list li cla
  • 适用于 2 页的书签

    I m using a bookmarklet to inject javascript into a webpage I am trying to login into my gmail account that part works a
  • 当 akka actor 在测试线程之外抛出异常时,scalatest 失败

    我曾经遇到过这样的情况 在我测试一个 Actor 时 Actor 意外抛出异常 由于错误 但测试仍然通过 现在 大多数情况下 Actor 中的异常意味着无论测试正在验证什么 都不会正确显示 因此测试失败 但在极少数情况下 情况并非如此 异常
  • 购买“iPhone”的买家退货空空如也

    tables create table product product id int product name varchar 50 unit price int insert into product values 1 S8 1000 2
  • 在 SQL Server 2008 中调试长动态 sql

    我有一些动态 sql 语句在某些条件下会崩溃 所以我正在尝试调试它 它的构建方式如下 declare sql varchar 4000 select sql
  • PHP中有这个函数吗?

    我发现自己需要这个函数 并且想知道它是否已经存在于 PHP 中 Truncates str and returns it with ending on the end if str is longer than limit characte
  • UILabel swift 中多行字符串的边界矩形

    我已经尝试了几个小时来找到boundingRect我有 UILabel 中的字符串 但似乎没有任何效果 据我了解 boundingRect返回标签中实际文本的大小 而不是标签的大小或类似的内容 这是真的 对吧 我有一个UILabel cal