美文网首页
富文本简单实现

富文本简单实现

作者: 阶梯 | 来源:发表于2018-03-27 14:25 被阅读6次

    为实现途中的文字样式,采用富文本的方式,如果大家有好的想法,欢迎补充。


    效果图.jpg

    创建 UIKitDrawLabel 类,继承自 UILabel, 在此类中,利用富文本实现对文字的重绘。

    VC中:

        self.drawLabel = [[UIKitDrawLabel alloc] initWithFrame:CGRectMake(100, 150, 200, 200)];
        self.drawLabel.backgroundColor = [UIColor grayColor];
        self.drawLabel.str = @"北京";
        [self.view addSubview:self.drawLabel];
        
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            
            self.drawLabel.str = @"中国";
            NSLog(@"------%s",__func__);
            [self.drawLabel setNeedsDisplay];
        });
    

    UIKitDrawLabel :

    - (void)drawRect:(CGRect)rect {
    
        [self drawText];
    }
    
    - (void)drawText{
    
        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        dic[NSFontAttributeName] = [UIFont systemFontOfSize:30];
        //设置前景色
       dic[NSFontAttributeName] = [UIFont fontWithName:@"Helvetica-Bold" size:20];
        //设置笔画宽度
        dic[NSStrokeColorAttributeName] = [UIColor greenColor];
        //当为正数的时候,文字为空心的,前景色的设置失效
        dic[NSStrokeWidthAttributeName] = @(-1.5);
        
    //    //设置阴影部分
    //    NSShadow *shadow = [[NSShadow alloc] init];
    //    shadow.shadowOffset = CGSizeMake(10, 10);
    //    shadow.shadowColor = [UIColor yellowColor];
    //    shadow.shadowBlurRadius = 10;
    //    dic[NSShadowAttributeName] = shadow;
        
        [self.str drawAtPoint:CGPointZero withAttributes:dic];
        
        NSLog(@"------%s",__func__);
    }
    
    demo效果.png

    拓展:字体加黑

    方法一:

    labelname.font = [UIFont boldSystemFontOfSize:15.0];

    这种方法可能导致个别字体加粗不成功,用过这个之后就不要再用

    方法二:

    labelname.font = [UIFont fontWithName:@"Helvetica-Bold" size:15];

    Helvetica-Bold还可以换成
    "Arial-BoldMT",
     ArialMT,
    "Arial-ItalicMT",
    "Arial-BoldItalicMT等等
    字体族科后面加-Bold就是加粗 加-Oblique就是倾斜
    

    相关文章

      网友评论

          本文标题:富文本简单实现

          本文链接:https://www.haomeiwen.com/subject/mltscftx.html