我尝试在UILabel中找出关于顶部约束的自动收缩选项。
我有UIView和三个标签。其中一个有自动收缩选项。它具有居中约束,并且具有Trailing和Top约束,当更改UIView的大小时,它应该缩小标签。如果我使UIVIew更薄,字体大小减少,但如果我改变UIView字体的高度不会改变。
UILabels的约束:
标签1约束:
标签2约束:
如何更改?
我想要的是,在最后一张图片上,标签会很好自动收缩。因此,如果我改变UIView标签的宽度或高度应缩小。
答案 0 :(得分:2)
答案 1 :(得分:1)
我希望下面的代码能以某种方式帮助你,
extension Double {
/// Returns propotional width according to device width
var propotional: CGFloat {
if UIDevice.current.userInterfaceIdiom == .pad {
return CGFloat(414.0) / CGFloat(375.0) * CGFloat(self)
}
return CGFloat(Screen.width) / CGFloat(375.0) * CGFloat(self)
}
}
extension UILabel {
/// This property is change font-size of Label's text propotionaly, if assigned `On` from Interface builder
@IBInspectable
var isPropotional: Bool{
get {
return true
}
set {
if newValue == true {
let fontSize = Double((self.font!.pointSize))
self.font = UIFont(name: self.font!.fontName, size: fontSize.propotional)
}
}
}
}
在Double的扩展中,通过将故事板中设置的当前设备视为iPhone 6大小来计算propotional值。