-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bug report #150
Comments
无法复现。 |
非常感谢您能抽出宝贵的时间回复我。是这样的,我在做一个中医app,我设计了个简单的标记语言,用来标识文本的字体大小和颜色,之后用NSAttributedString来解析并且渲染: ****这是我要渲染的文本(最后部分有一个标记嵌套): 渲染出来结果,是正确的,,这个$f{苓甘五味加姜辛半夏杏仁汤},包含在一个$a{} 标记内,这个标记我设置为字体小一号。我给这个XX汤做了一个了链接,,tapAction里头获取的rect就不正常了。 以下是一个方法,用来解析带有以上标记的文本。其中会有链接生成。当要渲染的文本是: 时,就出问题了。代码写的有点乱,很抱歉,麻烦您了。这是一个研究伤寒杂病论的app。 以下代码使用方法: 这是一个NSString类的category方法
// NSLog(@"%@",[res.string substringWithRange:innerRange]);
} |
我是您的忠实粉丝,您写的YYTextKit简直太棒了,非常好用:) |
注:只有我的这个标记语言有嵌套属性时,内层的highlight链接,会出现rect获取错误。其它的情况都工作良好。 |
呃。。好复杂的样子。。 |
这个已经是最短的了。。。不打印不知道,一打印吓一跳。。。 40{ |
我观察到。如果属性有嵌套时。比如“ ab{c[123]d}ef ", 先给大括号的range,设置某颜色或其他属性。然后再给中间的中括号这个range,再设置一个颜色或其他属性。那么中括号这个range如果再做链接,tapAction获取到的rect就可能宽高为0,x,y为+inf。(+inf是调试运行时控制台显示的) |
我按照上面那个 NSAttributedString 的描述,重新构造了一个字符串,发现 YYLabel 在查询高亮文本的 rect 时,如果包含了文本结尾的那个字符,则会得到 CGRectNull 的结果。上面这个 commit 修复了一下这个问题,你可以先单独更新一下那个文件看看,如果没有问题了,我会再更新到 cocoapods 去。 |
#150 看起来解决了。。。 |
仍然有bug::链接的这个rect的获取,在极少的情况下,仍然存在问题。比如一个2个字的短链接,在屏幕的最右边,没有跨行,获取的rect,应该是个小rect,有时候获取的rect大小竟然是跨行的那种大rect。 设备:iPhone 6s 出问题的链接获取到的rect: (实际并未跨行,宽度应该大约50左右,只有2个字,这个获取的结果有错误) 链接所在的containerView: 链接的text: 出问题的NSAttributedString的描述: |
链接所在的containerView: |
highlight.tapAction = ^(UIView *containerView, NSAttributedString *text, NSRange range, CGRect rect)
这个链接点击方法的参数,当NSAttributedString中含有不同字体大小的文字时,较小字体的链接点击后获取的该链接的rect的width和height都为0, x, y坐标无穷大。
The text was updated successfully, but these errors were encountered: