ios怎么实现带删除线的label

1.自己新建一个类名字为StrikeLabel,是UILabel的子类;
2.在StrikeLabel.h里@property(nonatomic)BOOL strikeThroughEnabled;
在StrikeLabel.m里
- (void)drawRect:(CGRect)rect{
[super drawTextInRect:rect];
CGSize textSize = [[self text] sizeWithFont:[self font]];
CGFloat strikeWidth = textSize.width;
CGRect lineRect;
if ([self textAlignment] == UITextAlignmentRight) {
lineRect = CGRectMake(rect.size.width - strikeWidth, rect.size.height/2, strikeWidth, 1);
} else if ([self textAlignment] == UITextAlignmentCenter) {
lineRect = CGRectMake(rect.size.width/2 - strikeWidth/2, rect.size.height/2, strikeWidth, 1);
} else {
lineRect = CGRectMake(0, rect.size.height/2, strikeWidth, 1);
}
if (_strikeThroughEnabled) {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextFillRect(context, lineRect);
}}
3.在需要声明label的时候
StrikeLabel *label=[[StrikeLabel alloc]initWithFrame:CGRectMake(100, 100, 200, 100)];
label.text=@"wo ai ni ";
label.strikeThroughEnabled=YES;
[self.view addSubview:label];
搞定了

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。