• 下划线按钮


    #import <UIKit/UIKit.h>

    @interface CXUnderLineButton : UIButton

    + (CXUnderLineButton *) underlinedButton;

    @end

    #import "CXUnderLineButton.h"

    @implementation CXUnderLineButton

    - (id)initWithFrame:(CGRect)frame

    {

        self = [super initWithFrame:frame];

        if (self) {

            // Initialization code

        }

        return self;

    }

    + (CXUnderLineButton*) underlinedButton {

        CXUnderLineButton* button = [[CXUnderLineButton alloc] init];

        return button;

    }

    - (void) drawRect:(CGRect)rect {

        CGRect textRect = self.titleLabel.frame;

        

        // need to put the line at top of descenders (negative value)

        CGFloat descender = self.titleLabel.font.descender;

        

        CGContextRef contextRef = UIGraphicsGetCurrentContext();

        

        // set to same colour as text

        CGFloat offset = 1.f;

        CGContextSetStrokeColorWithColor(contextRef, self.highlighted?[UIColor grayColor].CGColor: self.titleLabel.textColor.CGColor);

        

        CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender + offset);

        

        CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender + offset);

        

        CGContextClosePath(contextRef);

        

        CGContextDrawPath(contextRef, kCGPathStroke); 

    /*

    // Only override drawRect: if you perform custom drawing.

    // An empty implementation adversely affects performance during animation.

    - (void)drawRect:(CGRect)rect

    {

        // Drawing code

    }

    */

    @end

  • 相关阅读:
    使用freemarker生成word,步骤详解并奉上源代码
    汉诺塔问题
    java interview
    java 反射
    java 匿名内部类
    java 内部类(转)
    MYSQL和ORACLE的一些区别
    Hibernate总结(转)
    Hibernate的使用
    Arduino LM35温度检测
  • 原文地址:https://www.cnblogs.com/ldc529/p/3874887.html
Copyright © 2020-2023  润新知