2013-10-25 49 views
1

我正在尝试创建由几个UILabels组成的自定义单元。 第一个标签可能需要一行或多行,所以我需要根据行数调整标签大小(将行数设置为0后,将启用多行)。Monotouch - 计算UILabel高度

我试过设置sizeToFit(),但它改变了我的标签的对齐和宽度。

我发现this answer

,但我不知道如何将其转换为C#。

任何人都可以指点我一个例子吗? (我已经尝试过谷歌搜索其场外)

这是链接的方法:

// UILabel *myLabel; 

CGSize labelSize = [myLabel.text sizeWithFont:myLabel.font 
         constrainedToSize:myLabel.frame.size 
          lineBreakMode:UILineBreakModeWordWrap]; 

CGFloat labelHeight = labelSize.height; 


int lines = [myLabel.text sizeWithFont:myLabel.font 
       constrainedToSize:myLabel.frame.size 
        lineBreakMode:UILineBreakModeWordWrap].height/16; 
     // '16' is font size 

回答

4
var size = myLabel.StringSize("Some really long string", myLabel.Font, myLabel.Frame.Size, UILineBreakMode.CharacterWrap); 
var lines = size.Height/myLabel.Font.CapHeight; 
+0

谢谢,这真的帮助! –

+0

当试过时我得到一个错误,说StringSize不需要7个参数。 签入装配申报: 。 public static CGSize StringSize(this NSString this,UIFont font,nfloat minFontSize,ref nFloat actualFontSize,nfloat forWidth,UILineBreakMode lineBreakMode); 但它也提到它已弃用在ios 7.0中 任何备用解决方案都非常感谢!谢谢。 – coder284