首页 文章

UILabel 's height is to big for it'的宽度

提问于
浏览
0

正如你在这里看到的,这是一个随机文本的UILabel:

enter image description here

UILabel文本的高度太大了 . 我只想根据需要调整高度,以适应每种不同的宽度内容和大小 . 添加此扩展程序:

extension UILabel{

    func requiredHeight() -> CGFloat{

        let label:UILabel = UILabel(frame: CGRect(0, 0, self.frame.width, CGFloat.greatestFiniteMagnitude))
        label.numberOfLines = 0
        label.lineBreakMode = NSLineBreakMode.byWordWrapping
        label.font = self.font
        label.text = self.text

        label.sizeToFit()

        return label.frame.height
    }
}

extension CGRect{
    init(_ x:CGFloat,_ y:CGFloat,_ width:CGFloat,_ height:CGFloat) {
        self.init(x:x,y:y,width:width,height:height)
    }
}

还没有工作......这可以在Storyboard中做到吗?我尝试设置宽高比,但是当以编程方式使标签变大时,这会失败 . 有没有一种简单的方法来设置UILabel的高度以匹配它的内容,甚至可能在故事板中?由于高度与需要的高度不对应,我的整个布局都搞砸了 . UILabel需要例如来自顶部布局的10个点 . 因为高度很大,所以UILabel设置自己远远低于在故事板中的不同设备上运行它时所需的设置 .

1 回答

  • 0

    我认为您可以在故事板中设置UILabel的顶部和底部约束

    在这个例子中,独立于“LABEL BIG”的字体大小,总是与10个点的顶部布局分开,“LABEL SMALL”总是从“LABEL BIG”垂直分开8个点 .

    enter image description here

相关问题