iOS 像微博中可以点击连接、#text#、@somebody是如何做的,该怎样实现?

发布于 2022-08-25 01:49:21 字数 80 浏览 13 评论 0

微博客户端中

  1. 连接
  2. #text#
  3. @somebody

是怎样实现的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

七秒鱼° 2022-09-01 01:49:21

通过 CoreText 实现(推荐):

  1. 用正则解析纯文本生成 NSAttributedString
  2. 使用 CoreText 绘制到 CGContext 上;
  3. 点击时,通过 UIResponder 取到点击事件,并通过 CoreText API找到点击的具体文字,修改这部分的 NSMutableAttributedString(的颜色),并用 CoreText 重新绘制。

相关文档 http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/CoreText_Programming/Introduction/Introduction.html#//apple_ref/doc/uid/TP40005533

通过UIWebView实现:

  • UIWebView 可以直接显示一个网页,添加类似的链接很简单;
  • 可以在 UIWebView 的 delegate 方法中对点击的链接进行分析,执行相应的操作;
  • 通常 不会UITableView 中使用 UIWebView ,因为这会造成很严重的性能问题。
成熟的代价 2022-09-01 01:49:21

有现成的open source:TTTAttributedLabel
https://github.com/mattt/TTTAttribute...

度的依靠╰つ 2022-09-01 01:49:21

通常是嵌web页来实现

南冥有猫 2022-09-01 01:49:21

你可以做字符串解析,符合某种格式就输出为想要的形式,比如你要@某人,就分析,如果某段字符串满足“@用户名(用户id)”那么你就把这段字符串处理成超链接。

朮生 2022-09-01 01:49:21

解析可以用Twitter的开源库 Twitter Text,有各种语言的port:https://github.com/twitter/twitter-te...,显示方面可以用CoreText去做,可以自己实现或者用DTCoreText或TTTAttributedLabel之类的库

转角预定愛 2022-09-01 01:49:21

获取UILabel点击的字符LCText
http://blog.csdn.net/mlcldh/a...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文