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外,您是否找到了其他解决方案?