如何解决查找字符串的宽度快速
如何根据给定的字体名称和字体大小找到字符串的宽度(CGFloat)?
(目标是将UIView的宽度设置为足以容纳字符串的宽度。)
我有两个字符串:一个重复“ 1”,重复36次,另一个重复“ M”,重复36次。两者都填满了屏幕的宽度(359.0)(给予或留出一些余量)。
我正在使用等距的Courier 16,因此我希望两个字符串的宽度相等(实际上它们确实会出现在屏幕上)。
但是,使用https://stackoverflow.com/a/58782429/8635708:
- 带有“ 1”的字符串的宽度是257.34375
- 带有“ M”的字符串的宽度为492.1875。
- 第一个是没有填满屏幕,另一个是太长了。
并使用https://stackoverflow.com/a/58795998/8635708:
- 每个字符串的宽度为249.640625。
- 至少在这里,它们是相同的,但该值显然不会填满屏幕。
解决方法
我认为您可以创建标签并致电label.sizeToFit()
:
let label = UILabel()
label.font = UIFont.init(name: "Courier",size: 16)
label.text = "mmmmmmmmmmmmmmmm"//"1111111111111111"
label.sizeToFit()
print("Width: \(label.frame.size.width)") //153.66666666666666 -> For both strings
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。