开发和设计就像一对冤家,“抱”了一路。。。。。
一个lab控件,设计想到了很多, 于是就有了各种状态的Lab,居上,调整间距,不同颜色巴拉巴拉……..
先来第一个:
- UILabel text 行间距
UIFont *font = [UIFont boldSystemFontOfSize:17];
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc]init];
//设置行间距
paragraph.lineSpacing = 5;
paragraph.lineBreakMode = NSLineBreakByWordWrapping;
NSDictionary *attributes = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraph};
CGSize sizeRect = [restaurantName boundingRectWithSize:CGSizeMake(ScreenWidth, 300) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
_lab.frame = CGRectMake(0,0,sizeRect.width,sizeRect.height);
_lab.numberOfLines = 0;
_lab.font = font;
第二弹
- text居顶显示
有时候Label的高度确定,但是内容让居顶,来 ~ 看代码:
//首先要计算出text文本的大小,居顶,设置origin.y为lab的origin.y
CGRect topRect = [self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines];
topRect.origin.y = bounds.origin.y;
//随后在绘制text的方法里重新绘制text文本位置
-(void)drawTextInRect:(CGRect)rect
号外:创建一个继承于UILabel的子类,重载drawTextInRect,super调用即可。
第三弹
UILabel上显示不同颜色
如图:
其实UILabel上的关键字变颜色也可以这么做,上代码,range可随意组合:
//设置字符串中 ‘任何营养’ 染成红色
NSString *beforeStr = @"任何营养健身的问题,营养师都是详细解答。";
//这个range你可以改成某个关键字替换掉NSMakeRange
NSRange range = [beforeStr rangeOfString:@"任何营养"];
NSMutableAttributedString *str = [[NSMutableAttributedString alloc]initWithString:beforeStr];
[str addAttribute:NSForegroundColorAttributeName value:COLOR_S_RED range:NSMakeRange(0, 4)];
label.attributedText = str;
效果如下:
- UILabel上显示不同font大小
不得不说3个字本来就是一个lab加上去就行了,定睛一看,哦,字的大小不一样哦。那不还是一个Lab吗 ? sei让它强大呢 ~ 来来来,瞅瞅吧 ~
//设置不同字体
NSString *heatStr = [NSString stringWithFormat:@"%@ 大卡",singleMealModel.heat];
NSMutableAttributedString *heatstr = [[NSMutableAttributedString alloc]initWithString:heatStr];
[heatstr addAttribute:NSFontAttributeName value:FONT_S_13 range:NSMakeRange(singleMealModel.heat.length,3)];
cell.standardLab.attributedText = heatstr;
效果图如下,明白了吗 ?
哦了 ~ 周末愉快 ! 明天继续 !