说来惭愧,做为一个程序员一直以来,都是查看别人的博客,
今天就让我也来奉献一下吧
项目需要做一个如下图的label
看起来比较简单先放一个背景颜色灰色的view,高度为1,中间放label就ok了;
当然还有另一种方法可以做下面就是我的做法
首先你要继承一个label 直接贴代码
- (void)drawRect:(CGRect)rect { // Drawing code CGSize titleSize = [self.text sizeWithFont:[UIFont boldSystemFontOfSize:18] constrainedToSize:CGSizeMake(MAXFLOAT, self.frame.size.height)]; CGContextRef context =UIGraphicsGetCurrentContext(); CGContextBeginPath(context); CGContextSetLineWidth(context, 0.3); CGContextSetStrokeColorWithColor(context, [UIColor colorWithRed:84.0/255.0 green:84.0/255.0 blue:84.0/255.0 alpha:1].CGColor); float lengths[] = {(KW-titleSize.width-20)/2,titleSize.width+20,10}; CGContextSetLineDash(context, 0, lengths,2); CGContextMoveToPoint(context, 0.0, self.frame.size.height/2); CGContextAddLineToPoint(context, KW,self.frame.size.height/2); CGContextStrokePath(context); CGContextSetRGBFillColor (context, 84.0/255.0, 84.0/255.0, 84.0/255.0, 1.0); [self.text drawInRect:CGRectMake((KW-titleSize.width)/2, (self.frame.size.height-titleSize.height)/2, titleSize.width+10, self.frame.size.height) withFont:[UIFont boldSystemFontOfSize:18.0] lineBreakMode:NSLineBreakByTruncatingTail alignment:NSTextAlignmentLeft]; }
KW 是我设置的宏
#define KW [[UIScreen mainScreen] bounds].size.width
效果图如下
这样一来 用起来就方便多了
和系统label用法一样 直接修改label.text就可以了
小弟初次写技术博客 ,虽然不算什么技术,但也是我的一点经验,分享给大家,不喜勿喷,谢谢。
有哪里不好的地方 希望大家指点出来,大家一起交流。