Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UILabel有时会在文本上方以1px高的线条呈现NSAttribute字符串_Ios_Nsattributedstring_Core Text - Fatal编程技术网

Ios UILabel有时会在文本上方以1px高的线条呈现NSAttribute字符串

Ios UILabel有时会在文本上方以1px高的线条呈现NSAttribute字符串,ios,nsattributedstring,core-text,Ios,Nsattributedstring,Core Text,这对我来说有点奇怪。我在标签中显示了一些复杂的属性文本,它一直运行良好,直到最近,在某些文本行上方开始出现一条小灰线,如下所示: 请注意,这与tableview单元格分隔符不同,仅显示在标签的矩形上方 经过一点调试,我还注意到,当我没有蓝色括号中的“flair”标签时,该行不会出现: 我使用以下代码添加有问题的蓝色标记: let captionFont = UIFont.preferredFont(forTextStyle: UIFontTextStyle.caption1); let of

这对我来说有点奇怪。我在标签中显示了一些复杂的属性文本,它一直运行良好,直到最近,在某些文本行上方开始出现一条小灰线,如下所示:

请注意,这与tableview单元格分隔符不同,仅显示在标签的矩形上方

经过一点调试,我还注意到,当我没有蓝色括号中的“flair”标签时,该行不会出现:

我使用以下代码添加有问题的蓝色标记:

let captionFont = UIFont.preferredFont(forTextStyle: UIFontTextStyle.caption1);
let offset = (bodyFont.lineHeight / 2) - (captionFont.lineHeight / 2)

attributedString.addAttributes([NSAttributedStringKey.font : captionFont, NSAttributedStringKey.foregroundColor : Constants.linkColor, NSAttributedStringKey.baselineOffset:offset], range: flairRange!)

我做错了什么?这是CoreText错误吗?

经过一点尝试和错误,我确定只有当偏移量是十进制值时才会出现问题。当我简单地将偏移线替换为

let offset=ceil((bodyFont.lineHeight/2)-(captionFont.lineHeight/2))

那条线不再出现了。我怀疑这是一个CoreText错误