- Numerical type fast conversion
 - Storyboard equal scale adaptation
 - Xib equal scale adaptation
 - Custom calculation processing
 - Quick match for each screen size type
 
CocoaPods - Podfile
pod 'UIAdapter'Carthage - Cartfile
github "lixiang1994/UIAdapter"Select Xcode menu File > Swift Packages > Add Package Dependency and enter repository URL with GUI.
Repository: https://github.com/lixiang1994/UIAdapter
Add the following to the dependencies of your Package.swift:
.package(url: "https://github.com/lixiang1994/UIAdapter.git", from: "version")First make sure to import the framework:
import UIAdapterHere are some usage examples. All devices are also available as simulators:
AutoLayout (SnapKit):
private func setupLayout() {
    cardView.snp.makeConstraints { (make) in
	make.top.equalTo(16.zoom())
	make.left.right.equalToSuperview().inset(15.zoom())
	make.bottom.equalTo(-26.zoom())
    }
	
    lineView.snp.makeConstraints { (make) in
	make.left.right.equalToSuperview().inset(15.zoom())
	make.top.equalTo(titleLabel.snp.bottom)
	make.height.equalTo(1)
    }
        
    titleLabel.snp.makeConstraints { (make) in
        make.top.equalToSuperview()
        make.left.equalTo(15.zoom())
        make.height.equalTo(48.zoom())
    }
        
    stateLabel.snp.makeConstraints { (make) in
        make.top.equalTo(lineView).offset(10.zoom())
        make.left.equalTo(15.zoom())
        make.height.equalTo(15.zoom())
    }
}Property (Then):
private lazy var cardView = UIView().then {
    $0.cornerRadius = 6.zoom()
    $0.backgroundColor = .white
}
private lazy var lineView = UIView().then {
    $0.backgroundColor = .hex("000000", alpha: 0.05)
}
private lazy var titleLabel = UILabel().then {
    $0.textColor = .black
    $0.font = .systemFont(ofSize: 20.zoom(), weight: .medium)
}
private lazy var stateLabel = UILabel().then {
    $0.textColor = .gray
    $0.font = .systemFont(ofSize: 12.zoom(), weight: .medium)
}Storyboard / Xib:
e.g.
// default other screen numberOfLines = 0
// 3.5 inches screen numberOfLines = 1
// 4.0 inches screen numberOfLines = 2
label.numberOfLines = 0.screen.inch(._3_5, is: 1).inch(._4_0, is: 2).value// default other screen numberOfLines = 0
// width 320 screen numberOfLines = 1
// width 375 screen numberOfLines = 2
label.numberOfLines = 0.screen.width(equalTo: 375, is: 1).width(equalTo: 375, is: 2).valueprint("this is " + "default".screen
    .width(equalTo: 375, is: "width equal to 375")
    .width(lessThan: 414, is: "width less than 414")
    .width(greaterThan: 414, is: "width greater than 414")
    .height(equalTo: 700, is: "height equal to 375")
    .height(lessThan: 844, is: "height less than 844")
    .height(greaterThan: 844, is: "height greater than 844")
    .inch(._4_7, is: "4.7-inch")
    .inch(._5_8, is: "5.8-inch")
    .inch(._6_5, is: "6.5-inch")
    .level(.compact, is: "screen (4:3)")
    .level(.regular, is: "screen (16:9)")
    .level(.full, is: "screen (19.5:9)")
    .value
)If you have the need for a specific feature that you want implemented or if you experienced a bug, please open an issue. If you extended the functionality of UIAdapter yourself and want others to use it too, please submit a pull request.
UIAdapter is under MIT license. See the LICENSE file for more info.



