第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

UILabel添加刪除線(全部方法詳解,看這個(gè)就夠了)

標(biāo)簽:
Html5

在很多APP售卖的界面中经常看到有打折之前的价钱被添加了一条线条,本人在很多平台中找了方法,自己亲自码了几次,研究总结,分享这篇包括了所有方法,浅显易懂,和大家一起进步。(觉得有用就点击“喜欢”啦。)

UILabel添加线条.png

方法一:用RTLabel开源的富文本

  //首先创建一个Label
  label = [[UILabel alloc]initWithFrame:CGRectMake(130, 300, 180, 80)];
  label.font = [UIFont systemFontOfSize:35];
  label.backgroundColor = [UIColor yellowColor];
  [self.view addSubview:label];  //设置显示的价格
  NSString *oldPrice = @"¥ 12345";  //获取字符串的长度
  NSUInteger length = [oldPrice length];  //从这里开始就是设置富文本的属性
  NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithString:oldPrice];  //下面开始是设置线条的风格:
  //第一个参数addAttribute:是设置要中线(删除线)还是下划线。
  //NSStrikethroughStyleAttributeName:这种是从文本中间穿过,也就是删除线。
  //NSUnderlineStyleAttributeName:这种是下划线。

  //第二个参数value:是设置线条的风格:虚线,实现,点线......
  //第二参数需要同时设置Pattern和style才能让线条显示。
  
  //第三个参数range:是设置线条的长度,切记,不能超过字符串的长度,否则会报错。
  [attri addAttribute:NSStrikethroughStyleAttributeName value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle)  range:NSMakeRange(0, length)];  //下列是设置线条的颜色
  //第一个参数就是选择设置中线的颜色还是下划线的颜色,如果上面选择的是中线,这里就要选择中线,否则颜色设置不上去。
  //第二个参数很简单,就是颜色而已。
  //第三个参数:同上。
  [attri addAttribute:NSStrikethroughColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, length)];
  
  [label setAttributedText:attri];

方法一总结:方法一是最常用的,最方便的一种。

方法二:重写drawRect:(CGRect)rect方法

说明:这种方法较复杂,逼格较高。再说明一下重绘,重绘操作是在在drawRect方法中完成,但是苹果不允许直接调用drawRect方法。苹果要求我们调用UIView类中的setNeedsDisplay方法,则程序会自动调用drawRect方法进行重绘。
在UIView中,重写drawRect: (CGRect) aRect方法,可以自己定义想要画的图案.且此方法一般情况下只会画一次.也就是说这个drawRect方法一般情况下只会被调用一次.
开始讲解:首先我们要创建一个继承UIView的子类:
然后在这个子类里面重写drawRect:(CGRect)rect方法,上代码:
#import "ViewSon.h"
@implementation ViewSon
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor grayColor].CGColor);
CGContextFillRect(context, CGRectMake(0, CGRectGetHeight(self.frame) - 0.5, CGRectGetWidth(self.frame), 0.5));
}
@end

再者,在一个界面中添加UILabel,导入那个子类的头文件添加这个子类。

 label = [[UILabel alloc]initWithFrame:CGRectMake(130, 300, 180, 80)];
 label.text = @"   ¥258";
 label.font = [UIFont systemFontOfSize:35];
 [self.view addSubview:label];

  ViewSon * viewson = [[ViewSon alloc]initWithFrame:CGRectMake(35,100, 65, 4)];
viewson.backgroundColor = [UIColor redColor];
[viewson setNeedsDisplay];//这句就是调用方法,程序会自动调用重写了得那个方法。[label addSubview:viewson];

方法二的使用性很广泛,可不是单单的添加删除线和下划线,利用这种方法可以绘制出各种各样的图案。利用它添加删除线的时候,需要设置下划线添加在哪里,线条的长度也是随意的设置,并不一定需要和显示的字符串一样长。

了解了方法二之后,自己就开始研究重绘到底是有多强大,等我研究出了结果,立马分享给大家。



作者:蕾蕾是女神
链接:https://www.jianshu.com/p/d45656256aa9


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消