获得在指定Size范围内完全显示指定文字的最大字体的辅助函数
2012-03-03 19:49
417 查看
获得在指定Size范围内完全显示指定文字的最大字体的辅助函数
函数定义如下:
-(int) getFontSizeForString:(std::string)strText maxFontSize:(int)maxfontsize forSize:(CGSize)size;
参数 strText是要显示的文本内容,maxfontsize是指定一个最初的想要的字体字号。size是需要显示文本的区域范围。返回值为最合适的字体号。如果maxfontsize字号在指定的size范围内不能完全显示这些指定的文字,辅助函数就会测试比这个更小一号的字体,直到找到能够显示所有文字的字体为止。
辅助函数默认字体为Helvetica字体,其实可以改进下,将字体也做为一个参数来指定,就不修改了,懒得动了。
函数实现如下:
-(int) getFontSizeForString:(std::string)strText maxFontSize:(int)maxfontsize forSize:(CGSize)size
{
int fontSize=maxfontsize;
bool bContinue=true;
while (bContinue && fontSize>0)
{
CGSize showTipsSize;
UIFont *newfont= [UIFont fontWithName:@"Helvetica" size:fontSize];
NSString * nsText=[NSString stringWithCString:strText.c_str() encoding:NSUTF8StringEncoding];
CGSize originSize;
originSize.height=size.height;
originSize.width=10000;
showTipsSize = [nsText sizeWithFont:newfont constrainedToSize:originSize lineBreakMode: UILineBreakModeWordWrap];
if (showTipsSize.width+5<=size.width)
{
bContinue=false;
}
else
{
fontSize=fontSize-1;
}
}
return fontSize;
}
相关文章推荐
- OpenGL显示文字--指定字体
- iOS开发 - 同一段文字显示不同颜色和字体
- Android TextView中设定个别文字字体显示格式
- 获得指定范围的随机数
- range() 函数创建并返回一个包含指定范围的元素的数组
- 在android应用使用自定义的字体显示文字
- OSG显示文字——自定义显示文字函数
- IE下textarea中font-size值很大时,文字不显示的问题的解决办法
- React Native 指定文字行数,超出行数显示更多
- 同一个TextView如何显示不同颜色的文字、字体大小、字体样式
- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- input 输入框获得/失去焦点时隐藏/显示文字
- 显示字数在指定的范围内,多出来以....显示
- python获得指定天数的时间函数
- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- CSS控制文字超出范围显示省略号
- 设置UIButton的文字显示位置、字体的大小、字体的颜色
- 使用函数输出指定范围内的完数
- 设置TextView的最大行数,如果文字超出最大行数显示"..."
- 单文档界面指定位置显示指定大小的文字(汉字和英文)