10

私は現在使用しています

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

NSString のサイズを取得します。ただし、その文字列に絵文字が含まれている場合、絵文字自体のサイズを考慮するのではなく、リテラル Unicode 文字のサイズを計算しているように見え、返されるサイズが正しくありません。

uilabel に表示されるように、絵文字を含む文字列のサイズを正しく取得するにはどうすればよいですか?

4

2 に答える 2

2

NSString は絵文字を表していません。文字列を表しているため、sizeWithFont は文字列のみを考慮します。

私は使うだろう:

CGRect labelFrame = label.frame;  
labelFrame.size = [label sizeThatFits:CGSizeMake(100, 9999)];  
[label setFrame:labelFrame]; 

また

//Alternatively  
[label sizeToFit];

メソッドをsizeToFit呼び出すことsizeThatFits:に注意してください。したがって、ラベルを適切な高さに設定するという点では、 sizeThatFits: の方が速く、見やすいです。

于 2013-04-12T12:21:43.637 に答える