根据Xamarin.iOS中的Frame调整UILabel的字体大小

时间:2017-09-26 13:51:04

标签: ios xamarin.ios uilabel

我想动态调整UILabel的文本大小。 UILabel的框架将动态更改。每当更改UILabel的Frame时,字体大小都应该适合框架。

我尝试了以下代码,但没有效果。

  <input type="checkbox" name="IsValid" /> 
   <input type="button" id="abc" value="click"/>

   <script>
   $('#abc').click(function(){
   $("input[name=IsValid]").prop("checked", true);
   });

   </script>

最后我找到了解决方案。

这是我的计算

label.AdjustsFontSizeToFitWidth = true

1 个答案:

答案 0 :(得分:0)

您可以看到AdjustsFontSizeToFitWidth定义here

正如文档所说,roder中的大小将减少以适应标签的边界矩形,因此字体不会随着标签的框架动态变大,但是你可以设置非常大的字体。开始达到你的要求,看看我的测试结果。

代码段:

UILabel label;
public override void ViewDidLoad()
{
    base.ViewDidLoad();

    label = new UILabel(frame: new CGRect(0, 100, 100, 100));
    label.BackgroundColor = UIColor.Red;
    label.TextColor = UIColor.White;
    label.Font = UIFont.SystemFontOfSize(1000);
    label.AdjustsFontSizeToFitWidth = true;
    label.LineBreakMode = UILineBreakMode.Clip;
    label.BaselineAdjustment = UIBaselineAdjustment.AlignCenters;
    label.Text = "label";
    View.AddSubview(label);
}

partial void ButtonIncrease(UIButton sender)
{
    CGRect rect = label.Frame;
    rect.Width = 300;
    rect.Height = 300;
    label.Frame = rect;
}

partial void ButtonDecrease(UIButton sender)
{
    CGRect rect = label.Frame;
    rect.Width = 100;
    rect.Height = 100;
    label.Frame = rect;
}

enter image description here