【问题标题】:Adjust Label based on text size in Xamarin IOS在 Xamarin IOS 中根据文本大小调整标签
【发布时间】:2014-08-12 09:47:18
【问题描述】:

根据文本自动调整 UILabel 大小。

lbl_genericIndicators.Font = UIFont.FromName (KHELVETIC, KFontSize12);
float width = View.Frame.Size.Width-20;
SizeF size = ((NSString)lbl_genericIndicators.Text).StringSize(lbl_genericIndicators.Font,constrainedToSize:new SizeF(width,100),
lineBreakMode:UILineBreakMode.WordWrap);
var labelFrame = lbl_genericIndicators.Frame;
labelFrame.Size = new SizeF(width,size.Height);
lbl_genericIndicators.Frame = new RectangleF (10, 128, size.Width,size.Height);

以下是示例文本:

UITextView 显示的区域可以包含多行When a 用户点击文本视图,出现键盘;当用户点击 Return in 键盘,键盘消失,文本视图可以处理 以特定于应用程序的方式输入。您可以指定属性,例如 作为字体、颜色和对齐方式,适用于文本视图中的所有文本。

例如,我使用的上述文本。它需要自动调整以显示内容。

【问题讨论】:

    标签: c# ios xamarin uilabel


    【解决方案1】:

    通过以下代码解决

    lbl_genericIndicators.Font = UIFont.FromName (KHELVETIC, KFontSize12);
    lbl_genericIndicators.BackgroundColor = UIColor.Red;
    lbl_genericIndicators.TextAlignment = UITextAlignment.Justified;
    float width = View.Frame.Size.Width-20;
    SizeF size=((NSString)lbl_genericIndicators.Text).StringSize(lbl_genericIndicators.Font,constrainedToSize:new SizeF(width,100),lineBreakMode:UILineBreakMode.WordWrap);
    var labelFrame = lbl_genericIndicators.Frame;
    labelFrame.Size = new SizeF(width,size.Height);
    lbl_genericIndicators.Lines = int.Parse((lbl_genericIndicators.Text.Length / 40).ToString()) + 1;
    lbl_genericIndicators.Frame = new RectangleF (10, 128, size.Width,size.Height);
    

    【讨论】:

      【解决方案2】:

      这是我用来根据内容调整标签高度的代码 sn-p

      void ChangeLabelHeigthWithText(UITextView label,float maxHeight = 100f) 
              {
                  float width = label.Frame.Width; 
                  SizeF size = ((NSString)label.Text).StringSize(label.Font,constrainedToSize:new SizeF(width,maxHeight),
                          lineBreakMode:UILineBreakMode.WordWrap);
                  var labelFrame = label.Frame;
                  labelFrame.Size = new SizeF(width,size.Height);
                  label.Frame = labelFrame;
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-12
        • 2018-11-14
        • 2013-10-09
        • 2012-03-20
        • 2012-05-31
        相关资源
        最近更新 更多