ios - UIlabels 中的文本对齐方式
问题描述
我有 2 个相同宽度的相邻标签。label1 文本只占一行。label2 的文本很长,目标是在 2 行中显示全文,我使用 label.numberOfLines = 2 和 adjustsFontSizeToFitWidth = YES;
现在,label2 的第一行与 label1 的第一行不对齐。虽然标签仍然对齐,但 label2 文本从标签内的边距开始。我希望 label2 文本从顶部开始。请帮我解决一下这个。
解决方案
固定的:
CGSize originalSize = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
CGFloat usedScaleFactor = label.frame.size.width / originalSize.width;
CGFloat newFontSize = label.font.pointSize * usedScaleFactor;
label.font = [UIFont fontWithName:@"fontName" size:newFontSize];
这解决了我的问题。由于adjustsFontSizeToFitWidth,iOS在更改我的文本字体时使用我的原始文本字体大小计算标签框......
希望这对正在搜索这个的人有所帮助..
推荐阅读
- mysql - mysql 行数与总 COUNT 不匹配
- powerbi - 如何在 Power BI 原始数据上创建集群
- html - 在屏幕顶部下方显示列表项目标
- php - fwrite(): 发送 15 个字节失败,errno=1 不允许操作
- javascript - 打字稿找不到offscreencanvas
- python - python代码结果可以用Latex写吗?
- r - 如何在不将结果存储在 R 中的情况下“即时”检查排列
- linux - 如何使用 shell 脚本在文件路径连接中使用用户定义的变量
- c - 存储来自给定文件的数组长度和数组输入的问题,其中第一个整数是第一个数组的长度
- javascript - 使用 Electron 和 React 从目录读取文件名并输出到 JSON 的方法