zoukankan      html  css  js  c++  java
  • 文字加描边

    1、自定义UILabel

    • GC_Label.h

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface GC_Label : UILabel
    
    // 设置文字描边:默认不描边,设置了描边颜色才会描边
    /** 描边颜色 */
    @property(nonatomic, strong) UIColor *stroke_color;
    /** 描边宽度,默认为1 */
    @property(nonatomic, assign) CGFloat stroke_width;
    
    @end
    
    NS_ASSUME_NONNULL_END
    
    • GC_Label.m

    #import "GC_Label.h"
    
    @implementation GC_Label
    
    - (instancetype)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        if (self) {
            
            self.backgroundColor = Clear_Color;
            
            self.stroke_width = 1;
        }
        return self;
    }
    
    - (void)drawTextInRect:(CGRect)rect {
        
        if (self.stroke_color) {
            UIColor *temp_color = self.textColor;
            CGContextRef context = UIGraphicsGetCurrentContext();
            // 设置描边宽度
            CGContextSetLineWidth(context, self.stroke_width);
            CGContextSetLineJoin(context, kCGLineJoinRound);
            CGContextSetTextDrawingMode(context, kCGTextStroke);
            // 描边颜色
            self.textColor = self.stroke_color;
            [super drawTextInRect:rect];
            // 文本颜色
            self.textColor = temp_color;
            CGContextSetTextDrawingMode(context, kCGTextFill);
            [super drawTextInRect:rect];
        }
        else {
            [super drawTextInRect:rect];
        }
    }
    
    @end
    

    2、使用与效果

    • 使用

    _title_tv = [[GC_Label alloc] init];
    _title_tv.textAlignment = NSTextAlignmentCenter;
    _title_tv.textColor = [UIColor redColor];
    
    _title_tv.stroke_color = [UIColor darkGrayColor];
    _title_tv.stroke_width = 5;
    
    _title_tv.text = @"温度26℃";
    
    • 效果

  • 相关阅读:
    路由策略
    ospf 路由汇总
    OSPF type1 2
    ospf
    TCP 六种标识位
    raid 10 与 01
    SNMP协议
    ffmpeg剪切视频
    ubuntu18安装sbt
    服务器Ubuntu18重启后宝塔访问不了
  • 原文地址:https://www.cnblogs.com/CH520/p/15406972.html
Copyright © 2011-2022 走看看