Skip to content

lixiang1994/AutoInch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 26, 2024
62fcfab · Sep 26, 2024
Sep 2, 2021
Sep 26, 2024
Sep 2, 2021
Sep 26, 2024
Nov 9, 2018
Sep 26, 2024
Sep 2, 2021
Apr 24, 2019
Sep 26, 2024
May 10, 2019
Apr 9, 2024
Sep 26, 2024
Sep 26, 2024
Jun 15, 2022

Repository files navigation

AutoInch - 优雅的iPhone等比例/全尺寸精准适配工具

License  Swift  Platform  Swift Package Manager  Carthage  Cocoapods

If you haven't used it, Please use Rename -> UIAdapter.

If you have used it and want to migrate together, Please check the migration guide

Features

  • Numerical type fast conversion
  • Storyboard equal scale adaptation
  • Xib equal scale adaptation
  • Custom calculation processing
  • Quick match for each screen size type

Installation

CocoaPods - Podfile

pod 'AutoInch'

Carthage - Cartfile

github "lixiang1994/AutoInch"

Select Xcode menu File > Swift Packages > Add Package Dependency and enter repository URL with GUI.

Repository: https://github.com/lixiang1994/AutoInch

Add the following to the dependencies of your Package.swift:

.package(url: "https://github.com/lixiang1994/AutoInch.git", from: "version")

Usage

First make sure to import the framework:

import AutoInch

Here are some usage examples. All devices are also available as simulators:

Auto

AutoLayout (SnapKit):

private func setupLayout() {
    cardView.snp.makeConstraints { (make) in
	make.top.equalTo(16.auto())
	make.left.right.equalToSuperview().inset(15.auto())
	make.bottom.equalTo(-26.auto())
    }
	
    lineView.snp.makeConstraints { (make) in
	make.left.right.equalToSuperview().inset(15.auto())
	make.top.equalTo(titleLabel.snp.bottom)
	make.height.equalTo(1)
    }
        
    titleLabel.snp.makeConstraints { (make) in
        make.top.equalToSuperview()
        make.left.equalTo(15.auto())
        make.height.equalTo(48.auto())
    }
        
    stateLabel.snp.makeConstraints { (make) in
        make.top.equalTo(lineView).offset(10.auto())
        make.left.equalTo(15.auto())
        make.height.equalTo(15.auto())
    }
}

Property (Then):

private lazy var cardView = UIView().then {
    $0.cornerRadius = 6.auto()
    $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.auto(), weight: .medium)
}

private lazy var stateLabel = UILabel().then {
    $0.textColor = .gray
    $0.font = .systemFont(ofSize: 12.auto(), weight: .medium)
}

Storyboard / Xib:

Constraint UILabel Font

Screen

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: 320, is: 1).width(equalTo: 375, is: 2).value
print("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
)

Screenshot

TikTok 1

TikTok 2

Contributing

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 AutoInch yourself and want others to use it too, please submit a pull request.

License

AutoInch is under MIT license. See the LICENSE file for more info.


欢迎入群交流

QQ