博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义带下划线文本的UIButton
阅读量:5147 次
发布时间:2019-06-13

本文共 1289 字,大约阅读时间需要 4 分钟。

转载自 ,略有改动

 

UnderLineButton.h代码
@interface UnderLineButton : UIButton+ (UnderLineButton *) underLineButton;@end

 

UnderLineButton.m代码
@implementation UnderLineButton- (id)initWithFrame:(CGRect)frame{    self = [super initWithFrame:frame];    if (self) {        // Initialization code    }    return self;}+ (UnderLineButton *) underLineButton {    UnderLineButton * button = [[UnderLineButton alloc] init];    return [button autorelease];}// An empty implementation adversely affects performance during animation.- (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+2.0f;    CGContextRef contextRef = UIGraphicsGetCurrentContext();        //set to same color as text    CGContextSetStrokeColorWithColor(contextRef, self.titleLabel.textColor.CGColor);        CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender);        CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender);        CGContextClosePath(contextRef);    CGContextDrawPath(contextRef, kCGPathStroke);}@end

 

转载于:https://www.cnblogs.com/benbenzhu/p/3394459.html

你可能感兴趣的文章
Vue_(组件通讯)子组件向父组件传值
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android 官方新手指导教程
查看>>
安装 Express
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
【Linux】ping命令详解
查看>>
Oracle中包的创建
查看>>
关于PHP会话:session和cookie
查看>>
jQuery on(),live(),trigger()
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
导航,头部,CSS基础
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
gzip
查看>>
转负二进制(个人模版)
查看>>
LintCode-Backpack
查看>>
查询数据库锁
查看>>
我对于脚本程序的理解——百度轻应用有感
查看>>