我尝试找出 UILabel 中关于顶部约束的自动收缩选项。
我有 UIView 和三个标签。其中之一具有自动收缩选项。它具有居中约束,并且具有尾随和顶部约束,当更改 UIView 的大小时应收缩标签。如果我使 UIVIew 变薄,字体大小会减小,但如果我更改 UIView 字体的高度则不会改变。
UILabel 的限制:
标签 1 约束:
标签 2 约束:
如何改变这个?
我想要的是,在最后一张图片上,标签会很好地自动收缩。因此,如果我更改 UIView 标签的宽度或高度应该会缩小。
我希望下面的代码能以某种方式帮助你,
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 扩展中,将 Storyboard 中设置的当前设备视为 iPhone 6 尺寸来计算比例值。
on
后,您可以在属性检查器选项卡中看到 isPropotional 属性。请参考图片。