项目中遇到一个问题,UITextView内容是由两段文字组成的,上下的结构,但是上面或下面的文字过长的话,就会很不友好,直接显示不全,项目经理让我在文字后面加...,省略号。
我的想法是:
1.首先计算UITextView的宽度
2.计算出文字所占的长度,如果长度大于UITextView的宽度,就要做处理。
3.计算UITextView的宽度上最多可以放几个汉字。
4.获取新的字符串
//根据文字的格式,获取文字的size
CGSize size = [model.riskName sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15.0f]}];
//得到文字的宽度
float width = size.width;
NSString *newRiskName ;
if (width>(ScreenWidth-140)) {
//一个这种格式的字大概占16,所以可以获得文字的最大数量
NSUInteger N = (ScreenWidth -140)/16;
//拼接...
newRiskName = [model.riskName substringToIndex:N-2];
newRiskName = [NSString stringWithFormat:@"%@...",newRiskName];
NSLog(@"newRiskName===%@",newRiskName);
}else {
newRiskName = model.riskName;
}