类似淘宝上的原价现价,原价上一般都会有一条横线,这种效果怎么实现呢?其实相当的简单,我们只需要重写自定义的lable的 - (void)drawRect:(CGRect)rect 方法就行了。
具体实现方法如下:
1. 调用super的方法就可以拿到值
[super drawRect:rect];
2. 获取到lable字体的尺寸
CGSize size = [self.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:self.font,NSFontAttributeName,nil]];
注:- (CGSize)sizeWithAttributes:(NSDictionary*)attrs; 这个方法是iOS7 之后的方法 代替了iOS6中过时了的 - (CGSize)sizeWithFont:(UIFont*)font
3.画线
UIRectFill(CGRectMake(0, size.height*0.5, size.width,1));
到这里就完成了,很简单吧,想当初第一次做项目就想实现这种效果可惜太水一直实现不了就放弃了,希望这个能对你们有所帮助。
如果你想设置线的颜色 可以 [[UIColor redColor] set]; 不过需要注意的是 要在画线之前设置。下面是效果图:
网友评论