STTweetLabel 快速上手:5 分钟让 UILabel 中的 @提及、话题标签和链接可点击
2026/8/20 19:50:44 网站建设 项目流程

STTweetLabel 快速上手:5 分钟让 UILabel 中的 @提及、#话题标签和链接可点击

【免费下载链接】STTweetLabelDeprecated - A UILabel with #hashtag @handle and links tappable项目地址: https://gitcode.com/gh_mirrors/st/STTweetLabel

STTweetLabel 是一个基于 TextKit 的 iOS 开源组件,它把普通 UILabel 升级为支持 @提及、#话题标签和链接点击识别的智能标签,效果与 Twitter 客户端如出一辙。它由 Sebastien Thiebaud 开发,设计轻巧、API 简洁,即使官方已宣布项目废弃(Deprecated),其实现思路依然是学习自定义 UILabel 与富文本点击交互的绝佳教材。

STTweetLabel 是什么?一个会"认字"的 UILabel

传统 UILabel 只能展示纯文本,用户看到 "@某人"、"#话题" 或网址时,只能复制后手动跳转。STTweetLabel 通过正则表达式 + TextKit 排版引擎,自动识别文本中的三类"热词"(HotWord):

  • @提及(Handle):如@SebThiebaud
  • #话题标签(Hashtag):如#iOS7
  • 链接(Link):如https://t.co/pQXDoiYA

识别后自动着色高亮,并支持点击回调,一条代码即可完成从"展示"到"交互"的升级。

STTweetLabel 核心功能一览

  • ✅ 自动识别并高亮 @提及、#话题标签、链接
  • ✅ 点击事件回调,返回热词类型、文本、协议与位置
  • ✅ 支持文本选中与复制(textSelectable属性控制)
  • ✅ 支持 RTL 从右到左书写方向(leftToRight属性)
  • ✅ 基于 TextKit,自动换行、富文本排版稳定可靠

STTweetLabel 快速安装方法(CocoaPods 一键集成)

STTweetLabel 支持 CocoaPods 安装,在 Podfile 中添加一行即可:

pod 'STTweetLabel', '~> 3.1.21'

然后执行pod install。注意:3.0 之后版本基于 TextKit,仅兼容iOS 7 及以上系统。安装后引入头文件#import "STTweetLabel.h"即可使用,源码位于STTweetLabel/STTweetLabel.hSTTweetLabel/STTweetLabel.m

让 UILabel 中的链接可点击:三步完成

第一步:创建实例并设置文本。用法与 UILabel 几乎一致,用initWithFrame:创建,直接setText:写入包含 @、# 和链接的字符串:

STTweetLabel *tweetLabel = [[STTweetLabel alloc] initWithFrame:CGRectMake(10.0, 60.0, 300.0, 160.0)]; [tweetLabel setText:@"Hi. This is a new tool for @you! Developed by @SebThiebaud for #iPhone #ObjC... and #iOS7 ;-) My GitHub page: https://t.co/pQXDoiYA"]; [self.view addSubview:tweetLabel];

第二步:实现点击回调。不写detectionBlock,点击事件将不会被捕获。回调中会返回热词类型、命中的字符串、链接协议(如http)以及文本中的位置范围:

[tweetLabel setDetectionBlock:^(STTweetHotWord hotWord, NSString *string, NSString *protocol, NSRange range) { // hotWord 区分 @提及 / #话题 / 链接,按需处理跳转逻辑 }];

第三步:运行验证。示例工程STTweetLabelExample/STTweetLabelExample/STViewController.m中展示了完整写法,底部会实时显示点击命中的热词类型、位置与协议。

常用属性定制:打造你的专属样式

STTweetLabel 提供了丰富的可配置属性:

  • text:显示文本,支持多行自动换行
  • validProtocols:合法的链接协议数组,默认@[@"http", @"https"]
  • textSelectable:是否允许选中文本(默认YES
  • selectionColor:文本选中时的背景色
  • leftToRight:书写方向,支持阿拉伯语等 RTL 场景
  • textAlignment:文本对齐方式

样式定制则通过setAttributes:系列方法完成,可为全文、或单独为 @提及、#话题、链接设置字体与颜色,例如让 @提及显示红色、链接显示蓝色,形成清晰的视觉层级。

注意事项与学习价值

  • ⚠️ 项目已标记为Deprecated(废弃),官方不再维护,建议仅用于学习或历史项目维护
  • 若想亲自体验效果,可通过git clone https://gitcode.com/gh_mirrors/st/STTweetLabel获取代码,用 Xcode 打开STTweetLabelExample.xcodeproj直接运行 Demo
  • 想深入了解识别与高亮实现,可重点阅读STTweetLabel/STTweetLabel.m中的determineHotWords与正则匹配逻辑,对理解 TextKit 富文本交互非常有帮助

总而言之,STTweetLabel 用极少的代码解决了 UILabel 富文本点击识别的经典痛点,如果你正在学习 iOS 文本交互或需要快速实现 Twitter 风格的标签高亮,它依然是值得参考的开源范例。

【免费下载链接】STTweetLabelDeprecated - A UILabel with #hashtag @handle and links tappable项目地址: https://gitcode.com/gh_mirrors/st/STTweetLabel

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询