iOS 仿微博 #话题 功能 完成心得

博客分享了在iOS中实现类似微博的话题功能的开发经验,重点在于使用NSAttributedString处理文字变色,以及处理光标位置和话题编辑的挑战。通过词法解析获取话题位置,利用typingAttributes解决光标颜色跟随问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

最近要求做一个仿照微博话题的功能 用textView实现 满地坑

原以为这个功能没什么麻烦的,现实总是pia pia打脸

 

实现文字变色 必然要用到富文本现实  NSAttributedString 当然想要编辑 还要转换 NSMutableAttributedString 才可以

文字变色,简单 - (void)addAttribute:(NSAttributedStringKey)name value:(id)value range:(NSRange)range;

1. name参数 百度一下 很多解释 我们设置颜色的时候 要用 NSForegroundColorAttributeName

2. value参数 跟name是对应的 我们现在name是NSForegroundColorAttributeName 所以value就是[UIColor color];

3. range参数 想要添加attribute的文字范围

实现这个 文字变色完成

 

 

因为我们这里是用textView实现,#话题 是可以增删的,而且 #话题 是可以多个的 ,文本内容是用户可编辑的,我们得防着点光标瞎来,有很多做法可参考,

1. 有的是会在监测到光标位置在话题内,会直接选中整个话题,再点击一次,会删除整个话题

2. 光标不能进入话题内,监测到光标进入话题内,自动挪到话题结尾

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值