您的位置:首页 > 产品设计 > UI/UE

UILabel 相关使用方法间距、段落、文字颜色(详细)

2016-03-15 18:54 585 查看
开发和设计就像一对冤家,“抱”了一路。。。。。

一个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;


效果图如下,明白了吗 ?



哦了 ~ 周末愉快 ! 明天继续 !
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息