最近要求做一个仿照微博话题的功能 用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. 光标不能进入话题内,监测到光标进入话题内,自动挪到话题结尾