1
iPhone에서 채팅 앱을 만들고 있습니다. sizeWithFont : constrainedToSize : lineBreakMode 함수에 문제가 있습니다. NSString에 긴 길이의 공백이 있으면 sizeWithFont()가 항상 반환합니다 (너비 : 218, 높이 : 18)iOS sizeWithFont의 공백 수에 제한이 있습니까? constrainedToSize : lineBreakMode?
이것은 내 테스트 코드입니다.
NSMutableString *string = [[NSMutableString alloc]initWithString:@""];
for(NSInteger i = 0; i < 99; i++) {
[string insertString:@" " atIndex:0];
NSInteger length = string.length;
CGSize size = [string sizeWithFont:[UIFont systemFontOfSize:[UIFont systemFontSize]] constrainedToSize:CGSizeMake(220, 9999) lineBreakMode:NSLineBreakByWordWrapping];
NSLog(@"Text:%@\nlength: %d\nsize: %f, %f\n",string, length, size.width, size.height, nil);
}
그리고 이것은 결과입니다.
Text:
length: 1
size: 4.000000, 18.000000
Text:
length: 2
size: 8.000000, 18.000000
Text:
length: 3
size: 12.000000, 18.000000
.
.
.
Text:
length: 56
size: 218.000000, 18.000000
Text:
length: 57
size: 218.000000, 18.000000
Text:
length: 58
.
.
.
Text:
length: 99
size: 218.000000, 18.000000
질문 : 긴 공백 문자열을 올바르게 얻으려면 어떻게해야합니까?
'NSLineBreakByCharWrapping'테스트를 시도했습니다. 결과는 같습니다. – user2943733