IOS 开发之UILabel 或者 UIButton加下划线链接

发布时间 - 2026-01-11 02:21:21    点击率:

IOS 开发之UILabel 或者 UIButton加下划线链接

         本文主要介绍了IOS中 UILable及UIButton的带下划线链接的实现方法及附有源码下载,大家开发IOS 应用有需要的可以参考下:

方法一:

NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"查看所有中奖记录"]; 
NSRange strRange = {0,[str length]}; 
[str addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:strRange]; 
[_awardDisplayBtn setAttributedTitle:str forState:UIControlStateNormal]; 

方法二:

HyperlinksButton.h

#import <UIKit/UIKit.h> 
 
@interface HyperlinksButton : UIButton 
{ 
  UIColor *lineColor; 
} 
-(void)setColor:(UIColor*)color; 
@end 

HyperlinksButton.m 
[objc] view plain copy print?
#import "HyperlinksButton.h" 
 
@implementation HyperlinksButton 
 
- (id)initWithFrame:(CGRect)frame 
{ 
  self = [super initWithFrame:frame]; 
  if (self) { 
     
  } 
  return self; 
} 
 
-(void)setColor:(UIColor *)color{ 
  lineColor = [color copy]; 
  [self setNeedsDisplay]; 
} 
 
 
- (void) drawRect:(CGRect)rect { 
  CGRect textRect = self.titleLabel.frame; 
  CGContextRef contextRef = UIGraphicsGetCurrentContext(); 
   
  CGFloat descender = self.titleLabel.font.descender; 
  if([lineColor isKindOfClass:[UIColor class]]){ 
    CGContextSetStrokeColorWithColor(contextRef, lineColor.CGColor); 
  } 
   
  CGContextMoveToPoint(contextRef, textRect.origin.x, textRect.origin.y + textRect.size.height + descender+1); 
  CGContextAddLineToPoint(contextRef, textRect.origin.x + textRect.size.width, textRect.origin.y + textRect.size.height + descender+1); 
   
  CGContextClosePath(contextRef); 
  CGContextDrawPath(contextRef, kCGPathStroke); 
} 
@end 

直接将这个类 copy 到工程中,,然后将需要加下划线的 Button 类名改为 HyperlinksButton就可以了,提供了 setColor: 这个接口,可以设置下划线颜色,代码很简单,不解释了。UILabel 同理可得。

示例结果:

源码下载地址:https://github.com/chaoyuan899/HyperlinksButton#how-to-use

本站源码下载:http://xiazai./201707/yuanma/HyperlinksButton-master().rar

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# UILabel  # 或者  # UIButton标题加下划线  # IOS  # 开发之下划线链接  # iOS基于 UILabel实现文字添加描边功能  # iOS如何封装带复制功能的UILabel示例代码  # iOS开发总结之UILabel常用属性介绍  # iOS中UILabel设置居上对齐、居中对齐、居下对齐及文字置顶显示  # iOS动态调整UILabel高度的几种方法  # iOS UILabel 设置内容的间距及高度的计算示例  # iOS中UILabel实现长按复制功能实例代码  # iOS UILabel根据内容自动调整高度  # iOS两丫技术之UILabel性能不够的解决方法  # 下划线  # 源码下载  # 下载地址  # 希望能  # 很简单  # 谢谢大家  # 可得  # 就可以  # UIControlStateNormal  # forState  # HyperlinksButton  # lt  # import  # NSUnderlineStyleSingle  # numberWithInteger  # range  # setAttributedTitle  # _awardDisplayBtn  # setColor  # color 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解jQuery停止动画——stop()方法的使用  微信小程序 input输入框控件详解及实例(多种示例)  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  千库网官网入口推荐 千库网设计创意平台入口  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  如何快速查询网址的建站时间与历史轨迹?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何挑选最适合建站的高性能VPS主机?  如何在阿里云通过域名搭建网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  详解Android图表 MPAndroidChart折线图  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  微信小程序 wx.uploadFile无法上传解决办法  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何在宝塔面板创建新站点?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Laravel定时任务怎么设置_Laravel Crontab调度器配置  清除minerd进程的简单方法  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何在建站之星绑定自定义域名?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  图册素材网站设计制作软件,图册的导出方式有几种?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  LinuxCD持续部署教程_自动发布与回滚机制  Laravel如何使用Telescope进行调试?(安装和使用教程)  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何有效防御Web建站篡改攻击?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Angular 表单中正确绑定输入值以确保提交与验证正常工作  JavaScript如何操作视频_媒体API怎么控制播放  Swift中switch语句区间和元组模式匹配  敲碗10年!Mac系列传将迎来「触控与联网」双革新  如何获取PHP WAP自助建站系统源码?  Laravel如何创建自定义Facades?(详细步骤)  Laravel如何处理CORS跨域请求?(配置示例)  Python文本处理实践_日志清洗解析【指导】  zabbix利用python脚本发送报警邮件的方法  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集