iOS 文本处理 ----- 两行文本后面添加 ... 查看更多
来源:互联网 发布:java游戏编程书 编辑:程序博客网 时间:2024/06/05 19:08
顶顶顶顶顶顶顶顶顶顶的大多数是是是是谁谁谁水水水水是是是是是...查看更多
顶顶顶顶顶顶顶顶顶顶的大多数是是是是顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶谁谁谁水水水水是是是是是是是是是是撒大多数是山东省撒打算打算打算打算的收水电费第三方第三方说的发送到发送到范水电费第三方士大夫士大夫。
实现思路:
1.计算两行文本可以显示文本的个数
2.截取字符串
3.拼接字符( ... 和 查看更多)两个都拼接上去
4.给查看更多文本(富文本)添加事件
问题:主要问题在于 思路1
如何知道两行文本可以显示多少个字数,而且文本可能有标点,数字、英文、中文 它们的宽度是不一致的。
意思就是:两行文本可以显示的个数 是根据具体需要显示文本内容来决定的。
上代码 使用到 coreText 框架
CTFramesetterCreateFrame(framesetter,CFRangeMake(0,0), bezierPath.CGPath,NULL);
/**
返回两行文本的range
*/
- (NSRange)getTwoTextRangeWith:(NSString *)string {
NSMutableDictionary * attributes = [NSMutableDictionary dictionaryWithCapacity:5];
UIFont * font = [UIFont systemFontOfSize:14.0];
[attributes setValue:font forKey:NSFontAttributeName];
NSAttributedString * attributedString = [[NSAttributedString alloc] initWithString:string/*需要分页的字符串*/ attributes:attributes];
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef) attributedString);
UIBezierPath * bezierPath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, App_Frame_Width - 16, 42)];
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), bezierPath.CGPath, NULL);
CFRange range = CTFrameGetVisibleStringRange(frame);
CFRelease(frame);
CFRelease(framesetter);
NSRange rg = NSMakeRange(range.location, range.length);
return rg;
}
后面的工作就自己截取字符串了。
- iOS 文本处理 ----- 两行文本后面添加 ... 查看更多
- 如何处理单行文本和多行文本溢出
- 多行文本框限制文本长度
- <textarea>文本域,多行文本输入
- 文本域,支持多行文本输入
- 文本溢出:单行文本,多行文本溢出显示省略号
- 文本显示省略号(单行文本+多行文本)
- js多行文本的处理方法
- 单行/多行文本溢出处理
- IOS页面UILable显示多行文本
- 在button中添加两行文字
- 多行文本框中选择文本行
- C#--GDI+绘制多行文本和格式化文本
- 5-3文本域,支持多行文本输入
- 多行文本框(也叫文本域)
- 第24课:文本域,支持多行文本输入
- 单行文本和多行文本--文字溢出
- 单行文本溢出与多行文本溢出
- C语言及程序设计实践项目-递归和多文件组织
- 公约数2
- Android 获取应用数字签名
- Android JSON解析(JSONObject和JSONArray)
- 基于ES6,使用React、Webpack、Babel构建模块化JavaScript应用
- iOS 文本处理 ----- 两行文本后面添加 ... 查看更多
- mysql之DQL
- 初探的嫩芽(2)
- 使用VC++6.0操作EXCEL
- AES加解密JS和php互相处理字符
- Andriod初体验-小白一天中遇到的坑
- big three三大函数:拷贝构造拷贝赋值析构函数
- Android开源库集合(点击各标题可进入GitHub查看)
- Linux命令格式和帮助