首页 > 解决方案 > 快速改变行距留下底部空白

问题描述

我正在尝试更改标签的行距以减少阿拉伯语的行距,它太多了。我从这里使用的扩展功能以及阿拉伯样式的添加正在控制标签的行距,但它留下的唯一问题是底部边距空白我假设在减少行距之前等于相同的标签大小。

这里的扩展功能:

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)

在此处输入图像描述

标签: iosswiftiphonexcodeipad

解决方案


我尝试了扩展它工作正常,如下所示:

bodyLabel.attributedText = entry.attributedText
bodyLabel.setLineSpacing(lineSpacing: -20)
bodyLabel.sizeToFit()

此外,如果这不起作用,请检查标签的高度,并尝试将内容设置为填充。

bodyLabel.contentMode = .scaleAspectFill

推荐阅读