ham*_*boy 5 cocoa-touch objective-c nsstring ios
我用来-[NSString sizeWithFont]获取文本高度。字符“t”明显高于“m”,但-sizeWithFont为这两个字符串返回相同的高度。这是代码:
UIFont* myFont = [UIFont fontWithName:@"Helvetica" size:1000.0];
NSString* myStr = @"m";
CGSize mySize = [myStr sizeWithFont:myFont];
Run Code Online (Sandbox Code Playgroud)
如图所示,使用“m”时,它会返回{834, 1151}。相反myStr = @"t",它是{278, 1151}. 较小的宽度按预期显示,但高度不显示。
是否有其他函数将文本紧紧包裹?我理想地寻找相当于 Android 的 Paint.getTextBounds() 的东西。
嗯……我想你接下来只会处理单个角色。sizeWithFont如上所述,返回该字体最大字符的高度,因为无论您做什么,文本字段都将是该高度。您将能够获得最大的高度值(UIFont's CGFloat capHeight),但是看起来您将处理各种文本
我会看一下 CoreText 框架。从这里开始并继续阅读。不可避免地,你最终会得到类似这样的结果:
CGFloat GetLineHeightForFont(CTFontRef iFont)
{
CGFloat lineHeight = 0.0;
check(iFont != NULL);
lineHeight += CTFontGetLeading(iFont);
return lineHeight;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |