文档章节

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

余成海
 余成海
发布于 2017/05/23 21:07
字数 77
阅读 23
收藏 0
点赞 0
评论 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
Android游戏Graphics绘图之绘制字符串

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

鉴客
2011/11/21
1K
0
Foundation框架

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

5vinsEnt
2016/03/30
29
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
iOS-开发小技巧

在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。 UITableView的Group样式下顶部空白处理 获取某个view所在的控制器 两种方法删除NSUserDefaults所有记录 打印系统所有已...

袭锐
2017/07/16
0
0
Nesting介绍和基础方法

自己总结NSString的方法: NSString面对的对象可以看成是一堆字符串或者单独是字符也可以,其中可以包括汉字、字母、数字等内容的结合。NSString的对象输出时不论是字符还是字符串,统一用%...

指间-亦泛伤
2016/09/03
10
1
iOS 通知框架

iOS 10 开始的通知 所有相关操作被统一到了UserNotifications.framework框架中。 增加了撤销、更新、修改通知的内容。 通知不在是简单的文本了,可以加入视频、图片,自定义通知的展示等。 ...

元元啰啰
2016/09/26
38
0
浅谈JS代码和OC代码的交互

以下为个人愚见, 如有不妥,望大家斧正!!!本文的GitHub源码下载地址:https://github.com/DXSmile/JS-OC.git 如需转载,请注明转载自DXSmile的GitHub项目https://github.com/DXSmile/JS-OC.git ...

DXSmile_大熊
2016/03/13
82
1
iOS小技巧总结,绝对有你想要的

字数947 阅读2032 评论26 喜欢99 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新。 UITableView的Group样式下顶部空白处理 UITableView的plain样式下,取消区头停滞效果 ...

andyhe91
2016/09/07
76
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

流利阅读笔记29-20180718待学习

高等教育未来成谜,前景到底在哪里? Ray 2018-07-18 1.今日导读 在这个信息爆炸的年代,获取知识是一件越来越容易的事情。人们曾经认为,如此的时代进步会给高等教育带来众多便利。但事实的...

aibinxiao
17分钟前
6
0
第15章FTP服务搭建与配置

15.1FTP介绍 FTP多用于Windows传文件到linux rz sz在文件超过4G,就无法使用了——>安装包yum install -y install lrzsz rz把 window 上的文件传输到 linux 上 sz 把 linux 上的文件传输到 ...

Linux学习笔记
24分钟前
0
0
OSChina 周三乱弹 —— 你被我从 osc 老婆们名单中踢出了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小鱼丁:分享五月天的单曲《后来的我们 (电影《后来的我们》片名曲)》: 《后来的我们 (电影《后来的我们》片名曲)》- 五月天 手机党少年们想...

小小编辑
29分钟前
6
1
Spring Boot Admin 2.0开箱体验

概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 Spring Boot 应用。说时迟,那时快,现在 Spring Boot Admin 都更新到 ...

CodeSheep
48分钟前
0
0
Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
今天
0
0
实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部