molon / MLLabel

UILabel replacement with TextKit. Support link and expression.
MIT License
723 stars 115 forks source link

关于@、#等特殊内容的换行问题! #2

Closed linsaw closed 9 years ago

linsaw commented 9 years ago

首先感谢分享这套内容,很好用,目前提供了网址链接还不换行的选择,但是似乎没有看到@、#等其他特殊内容有这个选项,希望能共提供跟@property (nonatomic, assign) BOOL allowLineBreakInsideLinks;一样不换行的选泽!

molon commented 9 years ago

@luffySaw 感谢喜欢。 这个属性是针对所有Link的,这个Link包括URL @ # 等等

linsaw commented 9 years ago

7236a57f-58da-4f43-b60b-e452f1185367

恩,麻烦看一下这种情况情况

126b5efa-2ba9-4b7e-891f-ab923c6eaa4b

molon commented 9 years ago

@luffySaw 没咋看明白。啥问题。

linsaw commented 9 years ago

这样的,你说了这个不换行展示的属性Link包括URL @ # 等等,你看看我图上最后一条红色部分内容,以及上一行果然后面空了一大段,这时候如果是不换行的话,不是应该果然后面接着@赵老师爱吃肉包吗?而且图上的第一条cell最后那个连接内容也换行了。谢谢!

molon commented 9 years ago

@luffySaw 你搞反了,那个属性的意思是 允许链接内部break 你设置为NO当然是尽量不break所以会换一行。

linsaw commented 9 years ago

可能我描述不太好,我把这个属性的YES和NO的效果分别截图您看看吧。 1111 22

molon commented 9 years ago

@luffySaw 这两种效果都是OK的。

看第二种: 其中 赵老师爱吃肉包 那里可以清晰的看到这个链接内部有break,所以折行是合理的。 而第一个 sina 链接看到有空白部分的行应该是由于lineBreakMode默认是WordWrap导致。所以也是合理的。(你可以尝试lineBreakMode设置为charwrap看下)

看第一种: 没有允许链接内有break,所以显示就以尽量的让链接不折行,除非一行实在塞不满了,效果是OK的。

linsaw commented 9 years ago

了解了,设置了lineBreakMode为charwrap之后,@跟url都不折行了,感谢大神!

molon commented 9 years ago

@luffySaw 客气。 你这个demo内容比我的好看,有空我借鉴下。:)

linsaw commented 9 years ago

大神,又碰到一个问题了,不知道是不是我设置问题,你看下 2222 这里我设置了开头两三个字能点击,然后你再看下下面两张图的红色部分 111 33333 然后总结一下就是,如果我的内容里面要设置某个位置的文字能点击,前提是必须内容里面有url、@、#等特殊内容,才能出现,如果内容里面没有这几个特殊内容,我设置某个位置的文字点击就无效,不只是是不是我没用好,请教一下!

molon commented 9 years ago

@luffySaw 我估计是你在addLinkWithType之后进行了setText。 addLinkWithType是针对于Label的,并不是针对于文本的,所以其只对当前label上的文本有效。而如果之后Label被重新设置了文本,那之前的addLinkWithType就应当被忽略。

当然我不确定你到底是不是这个问题,如果不是的话,可以直接联系我,给个demo我查下。扣扣:姚姚启叁贰贰贰肆贰

还有如果是新问题,最好新开一个issue。 :)

update: 此问题是本库的问题,这里更新记录下。 是由于tableView里每次显示cell时候会对label设置highlighted,由此产生了label内部resettext,重新生成链接导致之前add的link删除。这里已经修复此问题。 fixed it: https://github.com/molon/MLLabel/commit/ada267bd63d6ed58c0cd86a636663b1c4922454f