以字符进行截断,免得出现半个字符
来源:互联网 发布:阿里云是邮箱吗 编辑:程序博客网 时间:2024/06/04 19:41
-(CGSize)sizeUtilForTitle:(NSString *)title{ if (NSFoundationVersionNumber<=NSFoundationVersionNumber_iOS_6_1) { return [title sizeWithFont:self.titleLabel.font]; }else{ return [title sizeWithAttributes:@{NSFontAttributeName:self.titleLabel.font}]; }}//以字符进行截断,免得出现半个字符 CGSize size; NSString *tempString=nil; size = [self sizeUtilForTitle:title]; CGSize titleSize = self.titleLabel.bounds.size; if (size.width>titleSize.width) { int firstCompare = 0; int compare = 0; int currentLength = 8; do { tempString = [title substringToIndex:currentLength]; size = [self sizeUtilForTitle:tempString]; compare = size.width<titleSize.width?-1:1; if (compare==0) { break; } if (firstCompare*compare>0) { currentLength-=firstCompare; continue; }else if (firstCompare*compare<0){ currentLength+=firstCompare; break; } if (firstCompare==0) { firstCompare = compare; currentLength -=compare; } } while (YES); self.titleLabel.text = [title substringToIndex:currentLength]; }else{ self.titleLabel.text = title; }对于单行文字,其实只要对UILabel只要设置numberOfLines大于1,并且lineBreakMode为NSLineBreakByCharWrapping,就可以自动做到以上效果了,以上处理显得有点多余,不过既然写了出来,就记录一下吧。
0 0
- 以字符进行截断,免得出现半个字符
- PHP截断中文字符
- PHP中文字符截断
- MySQL 字符截断攻击
- 服务器由iis转换为apache出现字符被截断
- 字符串函数strcpy,出现的字符截断问题
- HTML5----CSS显示半个字符
- 带有汉字的字符串截断出现半个“汉字”的解决方法
- 限定字符长度,截断中文字符
- bat-任意截断替换字符
- TextBlock截断字符显示为....
- DataGrid 支持字符截断显示
- JAVA字符截断保留尾部
- swift截断String末尾字符
- 1.Shapefile字符截断问题
- asp中null字符截断
- Leetcode451. 对字符出现频率进行排序
- 截取固定长度汉字差半个字符
- <textarea>里的内容保存MYSQL后,页面输出不换行的解决方法
- 利用sscanf()匹配字符串需要注意贪婪匹配
- [整理]创建JavaScript对象用闭包的方式保证内部数据不能外部所访问
- Angular-$http请求后台php接收方法
- 计数排序
- 以字符进行截断,免得出现半个字符
- 基于AOP实现权限管理:通过shiro认证身份和模拟授权认证
- 平时问题汇总(持续更新)
- Leetcode: Letter Combinations of a Phone Number
- C# filter 筛选器
- 编译适用于TP-Link WR703N的OpenWRT固件
- undo相关实验
- 基数排序
- SQL SERVER 2008 R2序列号