SwiftyFitsizeSwift 屏幕適配方案
SwiftyFitsize 是一個(gè) Swift 的屏幕適配方案。
環(huán)境要求
-
iOS 9.0+
-
Xcode 10.0+
安裝
-
Cocoapods
pod 'SwiftyFitsize'
預(yù)覽
使用
一、操作符 ~ 與 ≈
無(wú)論是
~還是≈對(duì)iPhone的適配效果是一樣的。而對(duì)iPad而言,iPad的寬度太大,使用≈還是會(huì)按寬度比例進(jìn)行運(yùn)算,就會(huì)顯示特別臃腫,這時(shí)使用~在顯示上就會(huì)比較合適。
~在≈的基礎(chǔ)上針對(duì)iPad的適配大小后再去乘上iPadFitMultiple。一般情況下直接使用
~即可。
~ : 當(dāng)設(shè)備為 iPad 時(shí),適配后的值會(huì)與 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) 適配后的值不會(huì)與 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 可以調(diào)用以下方法
/// 設(shè)置參照的相關(guān)參數(shù) /// /// - Parameters: /// - width: 參照的寬度 /// - iPadFitMultiple: iPad 在適配后所得值的倍數(shù) (0 , 1] SwiftyFitsize.reference(width: 414, iPadFitMultiple: 0.5)
二、支持 xib 和 storyboard
enum SwiftyFitType: Int {
/// Original Value
case none = 0
/// ~
case flexible = 1
/// ≈
case force = 2
}
-
Font Fitsize
支持的UI控件有: UILabel UIButton UITextView UITextField
FontFitType 的值請(qǐng)參考上方的 enum SwiftyFitType
-
Constraint Fitsize
約束適配同上
iPad 關(guān)于 ~ 與 ≈ 在使用上的對(duì)比
三、Objective-C
由于
OC不支持運(yùn)算符重載,所以只能用宏來(lái)適配。
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));
評(píng)論
圖片
表情
