我在storyBoard中添加了autoLayout(w:Any,h:Any)
但由于字体大小固定,所有设备的字体大小都相同
(4,4.7,5.5英寸)
4英寸看起来不错.但在5.5英寸,这太小了
我想在任何设备中动态地发布和减少UIlabel字体大小.
有任何想法吗?
解决方法
我找到了解决方案
我做了一堂课
class UILabelDeviceClass : UILabel { @IBInspectable var iPhoneFontSize:CGFloat = 0 { didSet { overrideFontSize(iPhoneFontSize) } } func overrideFontSize(fontSize:CGFloat){ let currentFontName = self.font.fontName var calculatedFont: UIFont? let bounds = UIScreen.mainScreen().bounds let height = bounds.size.height switch height { case 480.0: //Iphone 3,4,SE => 3.5 inch calculatedFont = UIFont(name: currentFontName,size: fontSize * 0.7) self.font = calculatedFont break case 568.0: //iphone 5,5s => 4 inch calculatedFont = UIFont(name: currentFontName,size: fontSize * 0.8) self.font = calculatedFont break case 667.0: //iphone 6,6s => 4.7 inch calculatedFont = UIFont(name: currentFontName,size: fontSize * 0.9) self.font = calculatedFont break case 736.0: //iphone 6s+ 6+ => 5.5 inch calculatedFont = UIFont(name: currentFontName,size: fontSize) self.font = calculatedFont break default: print("not an iPhone") break } }
}
然后,设置类
然后,设定价值
快乐的编码!