计算文本的大小 UILabel
我在画画
软件。 他们从数据库中获得尺寸。 所以我不能只是使用
. 我已经实现了一个redraws的函数
具有传输系数。 所以我需要找到的一切 - 这是文字B.
从我的角度来看,这将需要重新绘制的最大比率
.
所以,最后,我需要做这样的事情:
那么,我如何获得文本的高度和宽度的大小,因为我的一些文本不适合标签,我不能只使用标签边界? 我用 Xcode 5 和 iOS 7.
UILabels
软件。 他们从数据库中获得尺寸。 所以我不能只是使用
sizeToFit
. 我已经实现了一个redraws的函数
UILabels
具有传输系数。 所以我需要找到的一切 - 这是文字B.
UILabel
从我的角度来看,这将需要重新绘制的最大比率
UILabels
.
所以,最后,我需要做这样的事情:
double ratio = 1.00;
for /UILabel* labels in sec.subviews/ {
float widthLabel = labels.frame.size.width;
float heightLabel = labels.frame.size.height;
float heightText = //get the text height here
float widthText = //get the text width here
if /widthLabel < widthText/ {
ratio = MAX/widthText/widthLabel,ratio/;
}
if /heightLabel < heightText/ {
ratio = MAX/heightText/heightLabel, ratio/;
}
}
//redraw UILabels with the given ratio here
那么,我如何获得文本的高度和宽度的大小,因为我的一些文本不适合标签,我不能只使用标签边界? 我用 Xcode 5 和 iOS 7.
没有找到相关结果
已邀请:
10 个回复
裸奔
赞同来自:
[NSString sizeWithFont...]
过时的B. iOS 7. 使用它。
看
https://developer.apple.com/do ... hfont
.
更新示例输出 boundingRectWithSize
根据您的评论,我做了一个简单的测试。 代码和输出如下所示。
这导致以下结果。 /请注意,正如字体大小的增加,边界更改/:
裸奔
赞同来自:
Objective-C
Swift 4
let size = label.text?.size/withAttributes: [.font: label.font]/ ?? .zero
它给了你尺寸。 你可以比较
每个标签。
裸奔
赞同来自:
CGSize textSize = [label intrinsicContentSize];
/当然,只有在安装文本和字体标签后才能正确工作。/
詹大官人
赞同来自:
快网
赞同来自:
从
[UIFont systemFontOFSize:14]
如果你的行有两行的长度,那么返回高度 rect 等于大约 33,4 观点。
不要像我一样犯错,把它扔进去
, 因为 33,4 成为 33, 和 33 标签高度点从两个到一行!
郭文康
赞同来自:
这是
, 这决定了可能具有的最大值 CGRect.
我解决这个问题的解决方案是检查它是否超过了,那么文本可以适合标签。 我在循环的帮助下做到了。
在每次迭代后,高度和宽度的尺寸增加 10% 你的价值。
我选择的原因 6, 正是我不希望标签太软。
解决不使用周期:
最后一个周期证明更大的字体可以给出更高尺寸的结果。
江南孤鹜
赞同来自:
窦买办
赞同来自:
因此,我们可以使用宽度和高度。
帅驴
赞同来自:
三叔
赞同来自: