ibireme / YYText

Powerful text framework for iOS to display and edit rich text.
MIT License
8.86k stars 1.7k forks source link

换行。。 #214

Closed 597579501 closed 8 years ago

597579501 commented 8 years ago

NSMutableAttributedString如何直接换行呢。 好比我下面2个文本。如何根据2个文本换行。 如果加个\n则计算坐标错误

NSString fansNumStr = @"123"; NSString fanTitleStr = @"相册"; NSMutableAttributedString text = [NSMutableAttributedString new]; NSMutableAttributedString fansNumAttributedString = [[NSMutableAttributedString alloc] initWithString:fansNumStr]; NSMutableAttributedString *fansTitleAttributedString = [[NSMutableAttributedString alloc] initWithString:fanTitleStr]; [fansNumAttributedString setColor:UIColorHex(0xffffff)]; [fansTitleAttributedString setColor:UIColorHexAlpha(0xffffff, 0.5)]; [fansNumAttributedString setFont:Font(16)]; [fansTitleAttributedString setFont:Font(10)]; [text appendAttributedString:fansNumAttributedString]; [text appendAttributedString:fansTitleAttributedString]; _photoLabel.attributedText = text;

ibireme commented 8 years ago

https://github.com/ibireme/YYText#文本布局计算

换行可以看一下 YYTextContainer。

597579501 commented 8 years ago

昨天和朋友讨论了一个问题。所以想来YY大神你这证实一下。确实你写的库很棒。我已经到了很多时候不愿意UILabel之类的东西优先考虑YY开头的东西。所有只要界面是一个label带一个图片的东西。我都会考虑你用的YYLabel加NSMutableAttributedString拼装实现。以前的做法都是label是label。imageView是image。这样开发起来坐标很费时间和力。但是我那个同事提出来说你这样的做法。会影响到效率。那么我的疑问就是如果真的是一个label和一个image拼装的东西。用富文本效率上会不如分别一个label和uiimageView这样吗

ibireme commented 8 years ago

一个 label 和 一个 image 的情况下,可能 YYLabel 性能会差一些;Label 或是 image 多一些,那 YYLabel 性能可能会有些优势。

wy19901227 commented 8 years ago

YYlable不就是解决性能的问题吗?

发自我的 iPhone

在 2016年3月15日,16:30,Yaoyuan notifications@github.com 写道:

一个 label 和 一个 image 的情况下,可能 YYLabel 性能会差一些;Label 或是 image 多一些,那 YYLabel 性能可能会有些优势。

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/ibireme/YYText/issues/214#issuecomment-196716520

ibireme commented 8 years ago

YYLabel 在纯文本的情况下,总 CPU 消耗可能要比 UILabel 高一点,在复杂的文本和图片的情况下,YYLabel 的总 CPU 消耗可能会低一些。由于文本排版与绘制的原理基本一致,所以这个性能差距不会很大。

YYLabel 的优势是在于异步排版与绘制,开启异步模式时,大部分 CPU 占用会从主线程挪到其他后台线程去,这是 UILabel 做不到的。