Ios 快速更改行距会留下底部空白
我正在尝试更改标签的行距,以减少阿拉伯语中的行距—这太多了。我从中使用的扩展函数用于阿拉伯语样式的添加,其作用是控制标签的行距,但唯一的问题是它会留下底部空白,我假设在减少行距之前,它等于相同的标签大小 此处的扩展函数:Ios 快速更改行距会留下底部空白,ios,swift,iphone,xcode,ipad,Ios,Swift,Iphone,Xcode,Ipad,我正在尝试更改标签的行距,以减少阿拉伯语中的行距—这太多了。我从中使用的扩展函数用于阿拉伯语样式的添加,其作用是控制标签的行距,但唯一的问题是它会留下底部空白,我假设在减少行距之前,它等于相同的标签大小 此处的扩展函数: extension UILabel { // Pass value for any one of both parameters and see result func setLineSpacing(lineSpacing: CGFloat = 0.0, lineHeightM
extension UILabel {
// Pass value for any one of both parameters and see result
func setLineSpacing(lineSpacing: CGFloat = 0.0, lineHeightMultiple: CGFloat = 0.0) {
guard let labelText = self.text else { return }
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = lineSpacing
paragraphStyle.lineHeightMultiple = lineHeightMultiple
paragraphStyle.alignment = .justified
paragraphStyle.baseWritingDirection = .rightToLeft
let attributedString:NSMutableAttributedString
if let labelattributedText = self.attributedText {
attributedString = NSMutableAttributedString(attributedString: labelattributedText)
} else {
attributedString = NSMutableAttributedString(string: labelText)
}
attributedString.addAttribute(NSAttributedString.Key.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attributedString.length))
self.attributedText = attributedString
}
}
然后我就这样调用函数:
bodyLabel.attributedText = entry.attributedText
bodyLabel.setLineSpacing(lineSpacing: -20)
我尝试了扩展,它的工作原理如下:
bodyLabel.attributedText = entry.attributedText
bodyLabel.setLineSpacing(lineSpacing: -20)
bodyLabel.sizeToFit()
此外,如果这不起作用,请检查标签的高度,并尝试将内容设置为填充
bodyLabel.contentMode = .scaleAspectFill
我尝试了扩展,它工作得很好,如下所示:
bodyLabel.attributedText = entry.attributedText
bodyLabel.setLineSpacing(lineSpacing: -20)
bodyLabel.sizeToFit()
此外,如果这不起作用,请检查标签的高度,并尝试将内容设置为填充
bodyLabel.contentMode = .scaleAspectFill
车身标签的约束条件必须如下所示:
将标签的底部约束调整为=0
车身标签的约束必须如下:
将标签的底部约束调整为>=0
将标签的底部约束调整为>=0(您需要的任何值)。将标签的底部约束调整为>=0(您需要的任何值)