SwiftyFitsize Swift 屏幕适配方案 项目简介
SwiftyFitsize 是一个 Swift 的屏幕适配方案。环境要求iOS 9.0+Xcode 10.0+安装Cocoapodspod 'SwiftyFitsize'预览使用一、操作符 ~ 与 ≈无论是 ~ 还是 ≈ 对 iPhone 的适配效果是一样的。而对 iPad 而言,iPad 的宽度太大,使用 ≈ 还是会按宽度比例进行运算,就会显示特别臃肿,这时使用 ~ 在显示上就会比较合适。~ 在 ≈ 的基础上针对 iPad 的适配大小后再去乘上 iPadFitMultiple 。一般情况下直接使用 ~ 即可。~ : 当设备为 iPad 时,适配后的值会与 iPadFitMultiple 相乘100~
UIFont.systemFont(ofSize: 14)~
CGPoint(x: 10, y: 10)~
CGRect(x: 10, y: 10, width: 100, height: 100)~
UIEdgeInsetsMake(10, 10, 10, 10)~≈ : (option + x) 适配后的值不会与 iPadFitMultiple 相乘100≈
UIFont.systemFont(ofSize: 14)≈
CGPoint(x: 10, y: 10)≈
CGRect(x: 10, y: 10, width: 100, height: 100)≈
UIEdgeInsetsMake(10, 10, 10, 10)≈修改 参照宽度 与 iPadFitMultiple 可以调用以下方法/// 设置参照的相关参数
///
/// - Parameters:
/// - width: 参照的宽度
/// - iPadFitMultiple: iPad 在适配后所得值的倍数 (0 , 1]
SwiftyFitsize.reference(width: 414, iPadFitMultiple: 0.5)二、支持 xib 和 storyboardenum SwiftyFitType: Int {
/// Original Value
case none = 0
/// ~
case flexible = 1
/// ≈
case force = 2
}Font Fitsize支持的UI控件有: UILabel UIButton UITextView UITextFieldFontFitType 的值请参考上方的 enum SwiftyFitTypeConstraint Fitsize约束适配同上iPad 关于 ~ 与 ≈ 在使用上的对比三、Objective-C由于 OC 不支持运算符重载,所以只能用宏来适配。Xib 和 Storyboard 则跟上方提及的使用方式相同。修改 参照宽度 与 iPadFitMultiple[SwiftyFitsize referenceWithWidth:414 iPadFitMultiple:0.6];~UIFont *font = [UIFont systemFontOfSize:14];
UIFont *font1 = font.sf;
UIFont *font2 = SF_Font(font);
CGFloat num = SF_Float(14);
CGPoint point = SF_Point(CGPointMake(10, 10));
CGSize size = SF_Size(CGSizeMake(100, 100));
CGRect rect = SF_Rect(CGRectMake(10, 10, 100, 100));
UIEdgeInsets edge = SF_EdgeInsets(UIEdgeInsetsMake(0, 0, 100, 100));≈UIFont *font1 = font.sfz;
UIFont *font2 = SFZ_Font(font);
CGFloat num = SFZ_Float(14);
CGPoint point = SFZ_Point(CGPointMake(10, 10));
CGSize size = SFZ_Size(CGSizeMake(100, 100));
CGRect rect = SFZ_Rect(CGRectMake(10, 10, 100, 100));
UIEdgeInsets edge = SFZ_EdgeInsets(UIEdgeInsetsMake(0, 0, 100, 100));
UIFont.systemFont(ofSize: 14)~
CGPoint(x: 10, y: 10)~
CGRect(x: 10, y: 10, width: 100, height: 100)~
UIEdgeInsetsMake(10, 10, 10, 10)~≈ : (option + x) 适配后的值不会与 iPadFitMultiple 相乘100≈
UIFont.systemFont(ofSize: 14)≈
CGPoint(x: 10, y: 10)≈
CGRect(x: 10, y: 10, width: 100, height: 100)≈
UIEdgeInsetsMake(10, 10, 10, 10)≈修改 参照宽度 与 iPadFitMultiple 可以调用以下方法/// 设置参照的相关参数
///
/// - Parameters:
/// - width: 参照的宽度
/// - iPadFitMultiple: iPad 在适配后所得值的倍数 (0 , 1]
SwiftyFitsize.reference(width: 414, iPadFitMultiple: 0.5)二、支持 xib 和 storyboardenum SwiftyFitType: Int {
/// Original Value
case none = 0
/// ~
case flexible = 1
/// ≈
case force = 2
}Font Fitsize支持的UI控件有: UILabel UIButton UITextView UITextFieldFontFitType 的值请参考上方的 enum SwiftyFitTypeConstraint Fitsize约束适配同上iPad 关于 ~ 与 ≈ 在使用上的对比三、Objective-C由于 OC 不支持运算符重载,所以只能用宏来适配。Xib 和 Storyboard 则跟上方提及的使用方式相同。修改 参照宽度 与 iPadFitMultiple[SwiftyFitsize referenceWithWidth:414 iPadFitMultiple:0.6];~UIFont *font = [UIFont systemFontOfSize:14];
UIFont *font1 = font.sf;
UIFont *font2 = SF_Font(font);
CGFloat num = SF_Float(14);
CGPoint point = SF_Point(CGPointMake(10, 10));
CGSize size = SF_Size(CGSizeMake(100, 100));
CGRect rect = SF_Rect(CGRectMake(10, 10, 100, 100));
UIEdgeInsets edge = SF_EdgeInsets(UIEdgeInsetsMake(0, 0, 100, 100));≈UIFont *font1 = font.sfz;
UIFont *font2 = SFZ_Font(font);
CGFloat num = SFZ_Float(14);
CGPoint point = SFZ_Point(CGPointMake(10, 10));
CGSize size = SFZ_Size(CGSizeMake(100, 100));
CGRect rect = SFZ_Rect(CGRectMake(10, 10, 100, 100));
UIEdgeInsets edge = SFZ_EdgeInsets(UIEdgeInsetsMake(0, 0, 100, 100));