AdaptationKit 0.1.1

AdaptationKit 0.1.1

CatchZeng 维护。



  • catchzeng

AdaptationKit

Swift Version License Platform

📱屏幕自适应解决方案。

点击查看中文介绍

特点

  • 快速适应各种屏幕。
  • 自动计算英寸和字体。
  • 支持运算符。
  • 支持 IBInspectable。
  • 自定义适应规则。

用法

首先导入框架。

import AdaptationKit

ScreenMatchable

快速适应各种屏幕。支持 Int,Float,Double,String,CGRect,CGSize,CGFloat,CGPoint,UIEdgeInsets。

Effect

label.text = "I am " +
"unkown screen"
.i4("iPhone 4 like screen.")
.i8("iPhone 8 like screen.")
.i8P("iPhone 8Plus like screen.")
.iX("iPhone X like screen.")
.iXR("iPhone XR like screen.")
.iXMAX("iPhone XS MAX like screen.")
.p97("iPad 9.7 like screen.")
.p105("iPad 10.5 like screen.")
.p11("iPad 11 like screen.")
.p129("iPad 12.9 like screen.")

/*
* default numberOfLines = 0
* iPad numberOfLines = 1
* iPhone(In addition to iPhone XS Max) numberOfLines = 2
* iPhone XS Max numberOfLines = 3
*/
label.numberOfLines = 0.pad(1).phone(2).iXMAX(3)

/*
* default value = "0"
* iPad 9.7 & iPhone X value = "1"
*/
let value = "0".match([.p97, .iX], "1")

扩展您需要的其他类型。

extension YouType: ScreenMatchable {}

Adaptable

自动计算英寸和字体。

/*
* default(iPhone 8) width = 12.0
* iPhone 4 width = 10.24
* iPhone X MAX  width = 13.248
* ...
*/
testView.snp.makeConstraints { (make) in
    make.width.equalTo(12.adaptInch())
}

/*
* default(iPhone 8) size = 12.0
* iPhone 4 size = 10.24
* iPhone X MAX  size = 13.248
* ...
*/
label.font = UIFont(name: label.font.fontName, size: 12.0.adaptFont())


// operator
// ~ means adaptInch()
// ≈ means adaptFont()

testView.snp.makeConstraints { (make) in
    make.width.equalTo(12~)
}

label.font = UIFont(name: label.font.fontName, size: 12.0

UI

adaptFont

支持UILabel,UITextView,UITextField。

label.adaptFont = true // equal to  label.font = UIFont(name: label.font.fontName, size: font.pointSize.adaptFont())

IBInspectable

Effect

adaptConstant

自动计算LayoutConstraint的常数。

constraint.adaptConstant = true

IBInspectable

Effect

AdaptationRule

以上所有自动计算均基于默认规则(AdaptationRule.default)。

如果您想自定义计算规则,可以通过调用set方法实现。

let inchRule = AdaptationRule(baseScreen: .i8)
inchRule.set(screen: .i4, ratio: 0.5)
inchRule.set(screen: .iXMAX, ratio: 1.3)
AdaptationKit.set(inchRule: inchRule)

let fontRule = AdaptationRule(baseScreen: .i8)
fontRule.set(screen: .i4, ratio: 0.6)
fontRule.set(screen: .iXMAX, ratio: 1.5)
AdaptationKit.set(fontRule: fontRule)

示例

要运行示例项目,首先要从仓库中克隆,然后在示例目录中运行pod install

安装

AdaptationKit可以通过CocoaPods获得。要安装它,只需在Podfile中添加以下行

pod 'AdaptationKit'

作者

catchzeng, [email protected]

许可证

AdaptationKit遵循MIT许可证。有关更多信息,请参阅LICENSE文件。