Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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 带有基线偏移量的NSAttributedString可能会导致最后一行被截断_Ios_Swift_Cocoa Touch_Uilabel_Nsattributedstring - Fatal编程技术网

Ios 带有基线偏移量的NSAttributedString可能会导致最后一行被截断

Ios 带有基线偏移量的NSAttributedString可能会导致最后一行被截断,ios,swift,cocoa-touch,uilabel,nsattributedstring,Ios,Swift,Cocoa Touch,Uilabel,Nsattributedstring,我得到了一个属性字符串,它具有一个设置的基线偏移量,可以按照我的预期进行渲染 问题是,当我只向字符串的一部分添加任何其他样式(颜色、删除线、链接等)时,文本的位置会出错,因此最后一行不会被渲染 有没有办法让它正常工作 我最初的目标是将行高更改为小于字体的默认值,然后移动基线,以便某些字符的顶部不会被截断(如$) 这是我能做的最简单的在操场上复制的版本 导入UIKit ​ 让基线偏移:浮点=5 ​ 让defaultAttributes:[NSAttributedString.Key:任意]=

我得到了一个属性字符串,它具有一个设置的基线偏移量,可以按照我的预期进行渲染

问题是,当我只向字符串的一部分添加任何其他样式(颜色、删除线、链接等)时,文本的位置会出错,因此最后一行不会被渲染

有没有办法让它正常工作

我最初的目标是将行高更改为小于字体的默认值,然后移动基线,以便某些字符的顶部不会被截断(如$)


这是我能做的最简单的在操场上复制的版本

导入UIKit
​
让基线偏移:浮点=5
​
让defaultAttributes:[NSAttributedString.Key:任意]=[
.baselineOffset:NSNumber(值:baselineOffset),
]
​
let middleAttributes:[NSAttributedString.Key:任意]=[
.foregroundColor:UIColor.blue,
//.StrikethrawStyle:NSNumber(值:NSUnderlineStyle.single.rawValue)
//.link:URL(fileURLWithPath:),
]
​
let part=nsmutableAttributeString(字符串:“Lorem ipsum\n”,属性:defaultAttributes)
​
让middlePart=NSMutableAttributedString(attributedString:part)
addAttributes(middleAttributes,
范围:NSRange(位置:0,长度:middlePart.length))
​
let string=NSMutableAttributedString()
string.append(部分)
string.append(中间部分)
string.append(部分)
​
//删除最后一个换行符
string.replaceCharacters(在:NSRange(位置:string.length-1,长度:1)中,带:“”)
​
打印(字符串)
​
let label=UILabel()
label.backgroundColor=.white
label.numberOfLines=0
label.attributeText=字符串
label.sizeToFit()
标签

面对同样的问题,除了不使用baselineOffset外,您是否找到了其他解决方案?