zoukankan      html  css  js  c++  java
  • UIButton 上的标题添加下划线效果

    subclass UIButton类 重载drawrect方法:

    - (void)drawRect:(CGRect)rect 
        {
                // Get the Render Context
            CGContextRef ctx = UIGraphicsGetCurrentContext();
    
            // Measure the font size, so the line fits the text.
            // Could be that "titleLabel" is something else in other classes like UILable, dont know.
            // So make sure you fix it here if you are enhancing UILabel or something else..
            CGSize fontSize =[self.titleLabel.text sizeWithFont:self.titleLabel.font 
                                                       forWidth:self.bounds.size.width
                                                  lineBreakMode:UILineBreakModeTailTruncation];
            // Get the fonts color. 
            const float * colors = CGColorGetComponents(self.titleLabel.textColor.CGColor);
            // Sets the color to draw the line
            CGContextSetRGBStrokeColor(ctx, colors[0], colors[1], colors[2], 1.0f); // Format : RGBA
    
            // Line Width : make thinner or bigger if you want
            CGContextSetLineWidth(ctx, 1.0f);
    
            // Calculate the starting point (left) and target (right)   
            float fontLeft = self.titleLabel.center.x - fontSize.width/2.0;
            float fontRight = self.titleLabel.center.x + fontSize.width/2.0;
    
            // Add Move Command to point the draw cursor to the starting point
            CGContextMoveToPoint(ctx, fontLeft, self.bounds.size.height - 1);
    
            // Add Command to draw a Line
            CGContextAddLineToPoint(ctx, fontRight, self.bounds.size.height - 1);
    
            // Actually draw the line.
            CGContextStrokePath(ctx);
    
            // should be nothing, but who knows...
            [super drawRect:rect];   
        }
  • 相关阅读:
    Git版本控制+配置中心(Spring Cloud Config)(八)
    NodeJS+Sidecar异构系统+Zuul(七)
    API网关Zuul(六)
    Hystrix断路器(五)
    Feign配合Ribbon和Eureka来提供负载均衡的HTTP客户端(四)
    负载均衡Ribbon(三)
    Eureka注册中心(二)
    SpringCloud介绍(一)
    Swift基础小结_2
    谓词(搜索)
  • 原文地址:https://www.cnblogs.com/kelisi-king/p/3290271.html
Copyright © 2011-2022 走看看