文档章节

NSString根据宽度获得能显示出的字符串

余成海
 余成海
发布于 2017/05/23 21:07
字数 77
阅读 25
收藏 0
- (NSString *)getVisibleStringWithWidth:(CGFloat)width font:(UIFont *)font {

    NSMutableParagraphStyle *p = [[NSMutableParagraphStyle alloc] init];

    p.lineBreakMode = NSLineBreakByCharWrapping;

    NSAttributedString *namesAtt = [[NSAttributedString alloc] initWithString:self attributes:@{NSFontAttributeName:font, NSParagraphStyleAttributeName:p}];

    CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)namesAtt);

    UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, width, 25.)];

    CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, self.length), path.CGPath, NULL);

    CFRange range = CTFrameGetVisibleStringRange(frame);

    CFRelease(framesetter);

    CFRelease(frame);

    

    return [self substringWithRange:NSMakeRange(range.location, range.length)];

}

 

© 著作权归作者所有

共有 人打赏支持
余成海
粉丝 61
博文 57
码字总数 29577
作品 0
杭州
iOS工程师
NSString字体大小计算方法

转载自:http://blog.sojingle.net/ 最近在Cocoa学习中遇到一个小问题,就是在一个特定宽度的框中显示几个文字,需要根据宽度来计算字体的大小。后找到方法如下: NSString有这样一个方法 si...

慎道
2011/07/24
0
0
Foundation框架

什么是框架 众多功能API的集合 Foundation框架的作用 Foundation框架是MaciOS中其他框架的基础 Foundation框架包含了很多开发中常用的数据类型: 结构体 枚举 类 如何使用Foundation框架 要想...

5vinsEnt
2016/03/30
29
0
Android游戏Graphics绘图之绘制字符串

在Android游戏开发中,我们不可能全部用图片来显示,很多时候需要绘制字符串,比如开发一个RPG的游戏,有大量的对话内容,这时如果全部用图片来显示肯定不行。下面我们就看看如何在Canvas画布...

鉴客
2011/11/21
1K
0
iOS UISegmentedControl

SegmentedControl又被称作分段控制器,是IOS开发中经常用到的一个UI控件。 初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 - (instancetype)initWithItems:(NSArray *)i...

珲少
2015/04/13
0
0
NSString的简单介绍及常用方法总结

1.NSString的介绍 NSString本身是一个字符串类,继承于NSObject,文字内容一般都用NSString来表示。 一个NSString对象就代表一个字符串。 2.NSString的初始化 直接创建字符串: 这是一个常量...

这孤独世界幸好有你丶
2016/09/04
18
1

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
31分钟前
1
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
37分钟前
1
0
大数据学习脑图以及入门教程!

近些年,大数据的火热可谓是技术人都知道啊,很多人呢,也想学习大数据相关,所以,这里分享几个大数据脑图,希望可以让你清楚明白从哪里入门大数据,知道该学习以及掌握哪些知识点; 大数据...

董黎明
今天
1
0
聊聊redis的监控工具

序 本文主要研究一下redis的监控工具 redis-stat redis-stat是一个比较有名的redis指标可视化的监控工具,采用ruby开发,基于redis的info命令来统计,不影响redis性能。 docker运行 docker r...

go4it
今天
2
0
TypeScript基础入门之高级类型的索引类型(Index types)

转发 TypeScript基础入门之高级类型的索引类型(Index types) 高级类型 索引类型(Index types) 使用索引类型,编译器就能够检查使用了动态属性名的代码。 例如,一个常见的JavaScript模式是从...

durban
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部