Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 快速更改行距会留下底部空白_Ios_Swift_Iphone_Xcode_Ipad - Fatal编程技术网

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(您需要的任何值)