【发布时间】:2017-09-26 13:51:03
【问题描述】:
我想动态调整 UILabel 的文本大小。 UILabel 的框架将动态更改。每当更改 UILabel 的框架时,字体大小应与框架相匹配。
我试过下面的代码,但没有效果。
label.AdjustsFontSizeToFitWidth = true
我终于找到了解决办法。
这是我的计算
void ResizeLabelFontSize(CGRect frame,UILabel label)
{
int fontSize = 3;
UIFont font = UIFont.SystemFontOfSize(fontSize);
CGSize size = label.Text.StringSize(font);
while (frame.Width > size.Width)
{
fontSize++;
font = UIFont.SystemFontOfSize(fontSize);
size = label.Text.StringSize(font);
}
label.Font = UIFont.SystemFontOfSize(fontSize);
}
【问题讨论】:
-
您应该使用自动布局并设置垂直内容拥抱优先级值。将该优先级值设置为高于高度约束,如果您没有约束并且不想使用自动布局,则将内容拥抱优先级值设置为 1000,并在该行代码之后在您的视图上调用 set needs update 函数。
标签: ios xamarin.ios uilabel