项目中有类似于微博的界面展示,在网上找了一个SECoreTextView来实现其中的富文本部分,没想到遇到了一些坑,也许就是Bug?
先说说SECoreTextView这个开源控件,它有一个Twitter的Demo:TwitterClient-iOS,基本效果还是不错的,如果有条件的话可以运行到真机上登录Twitter看看。视图部分都是用StoryBoard实现的,有想知道微博的timeline列表怎么用StoryBoard实现的可以参考它,不过这个Twitter列表的实现还是比较简单,仅供参考。
遇到的问题是给SETextView中的文本加颜色高亮不起作用。我对string的处理就是参照Demo中的attributedStringWithTweet:方法处理的。
踩的第一个坑是对SETextView单独设置了textColor。这个貌似比NSAttributedString的优先级高,导致颜色无效
第二个坑是Demo里面的代码也有问题,主要是attributedStringWithTweet:方法里的这三行:
NSDictionary *attributes = @{(id)kCTForegroundColorAttributeName: (id)tweetColor.CGColor, (id)kCTFontAttributeName: (__bridge id)tweetfont};
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
CFRelease(tweetfont);
Demo里完全没有问题放在我的代码就是有问题的,换成
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text];
就好了,估计还是跟优先级有关系
时间: 2024-10-08 13:35:04