SizewithFont : SuffsaintOsize : LineBreakMode : 잘못된 크기를 반환하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1407106

문제

테이블 셀의 레이블에 표시하려는 문자열에 대해 두 가지 가능한 폭이 있으며 테이블 셀의 높이가 올바르게 기록되도록 높이를 계산해야합니다. 그러나 제약 크기에 대해 내가 무엇을하든 동일한 높이를 얻습니다. 이는 원하는 경우에 부정확합니다. 내가 사용하는 코드 :

CGFloat width = 300.0f;
NSString * value = @"LongText LongText LongText LongText LongText LongText";
CGSize contentSize = [value sizeWithFont: [UIFont systemFontOfSize: 14.0f]
                       constrainedToSize: CGSizeMake(width, CGFLOAT_MAX)
                           lineBreakMode: UILineBreakModeWordWrap];

내용 변수를 검사하면 너비는 252이고 높이는 36입니다. 그러나 300.0fi 대신 너비 변수로 222.0f를 플러그로 플러그를 꽂는 경우 너비는 189이지만 높이는 여전히 36이고, 처음 4 개의 긴 텍스트 단어 만 2 줄에 표시됩니다 (세 번째 줄은 어떻게 든 끊어진 것 같습니다. 계산). 왜 이런 일이 일어나고 있는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

코드가 옳습니다. 바라보다 여기 그리고 여기 코드에 장애가 있는지 확인하십시오.

다른 팁

그것은 올바른 크기를 반환하고 있음이 밝혀졌습니다. 내가 작업 한 코드는이 방법의 너비 대신 잘못된 너비를 사용하는 것이 었습니다. 따라서 텍스트가 차단되고 혼란 스러웠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top