计算字体大小以适应框架 – 核心文本 – NSAttributedString – iOS

计算字体大小以适应框架 – 核心文本 – NSAttributedString – iOS,第1张

概述我有一些文本,我通过一个NSAttributedString(代码如下)绘制到一个固定的框架.目前,我将文本大小编码为16.我的问题是,是否有一种方法可以计算给定帧的文本的最佳拟合大小? - (void)drawText:(CGContextRef)contextP startX:(float)x startY:(float)y withText:(NSString *)standString 我有一些文本,我通过一个NSAttributedString(代码如下)绘制到一个固定的框架.目前,我将文本大小编码为16.我的问题是,是否有一种方法可以计算给定帧的文本的最佳拟合大小?
- (voID)drawText:(CGContextRef)contextP startX:(float)x startY:(float)y withText:(Nsstring *)standString{    CGContextTranslateCTM(contextP,(bottom-top)*2);    CGContextScaleCTM(contextP,1.0,-1.0);    CGRect frameText = CGRectMake(1,(right-left)*2,(bottom-top)*2);    NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithString:standString];    [attrString addAttribute:NSFontAttributename                      value:[UIFont FontWithname:@"Helvetica-Bold" size:16.0]                      range:NSMakeRange(0,attrString.length)];    CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__brIDge CFAttributedStringRef)(attrString));    struct CGPath * p = CGPathCreateMutable();    CGPathAddRect(p,NulL,frameText);    CTFrameRef frame = CTFramesetterCreateFrame(framesetter,CFRangeMake(0,0),p,NulL);    CTFrameDraw(frame,contextP);}
解决方法 我可以看到这样做的唯一方法是运行大小计算的系统然后调整大小并重复,直到找到正确的大小.

即建立一定的尺寸之间的平分算法.

即运行大小10.
太小.
尺寸20.
太小.
尺寸30.
太大.
尺寸25.
太小.
尺寸27.
对,使用大小27.

你甚至可以从数百人开始.

尺码100.太大.尺码50.等等…

总结

以上是内存溢出为你收集整理的计算字体大小以适应框架 – 核心文本 – NSAttributedString – iOS全部内容,希望文章能够帮你解决计算字体大小以适应框架 – 核心文本 – NSAttributedString – iOS所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存