2013-10-25 2 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 (이 NSString이, UIFont 글꼴, nfloat minFontSize, ref nfloat actualFontSize, nfloat forWidth, UILineBreakMode lineBreakMode); 그러나이 기능은 사용 중지 된 항목도 언급했습니다. 다른 해결책은 많이 있습니다. 감사. – coder284