Dynamikos 1.0.0

Dynamikos 1.0.0

Siam Biswas维护。



Dynamikos 1.0.0

  • Siam Biswas

Dynamikos

CocoaPods

平台

Swift 中 UI 一致性的解决方案

没有 Dynamikos

alt text

使用 Dynamikos

alt text

什么是 Dynamikos

这是一个简单而实用的工具,适合那些总是承诺通过编程方式创建 UI/UX 的 iOS 开发者。

当您编写 UI/UX 代码时,您是否有过感觉您的设计只有在大屏幕设备上看起来很好,但在小或中等屏幕上却缺失一些东西的经历?

那是因为在传统方式下,UI 元素在不同的设备上并不总是在预期的位置。

现在 Dynamikos 帮助您在不同显示尺寸的设备上创建一致外观的 UI。

动态分支理论

Dynamikos将iPhone设备分为三类,并为每一类设定特定的百分比。

Max (100%): iPhone 6+,6s+,7+,8+,X,Xs,Xs Max,Xr,11,11 pro,11 pro max 
Mid (90%): iPhone 6,6s,7,8,SE second gen 
Min (80%): iPhone 4,4s,5,5s,5c,SE first gen 

现在有一个唯一规则,每次设置UI元素(位置、大小、边距)或为标签设置字体大小时,我们使用基于类别百分比的调整值,而不是使用确切值。

例如,假设我们有一个按钮,其大小为(高度:40 ,宽度:60)。使用dynamikos之后,调整值将变为:

Max (100%): (height: 40, width: 60)
Mid (90%): (height: 36, width: 54)
Min (80%): (height: 32, width: 48)

集成

CocoaPods (iOS 8+)

您可以使用CocoaPods通过将其添加到您的Podfile中安装Dynamikos

platform :ios, '8.0'
use_frameworks!

target 'MyApp' do
    pod 'Dynamikos', :git => 'https://github.com/siam-biswas/Dynamikos.git'
end

手动 (iOS 8+)

要手动在项目中使用此库,您可以

  1. 对于项目,只需将Dynamikos.swift拖到项目树中
  2. 对于工作空间,包含整个Dynamikos.xcodeproj

使用

魔法被封装在一个函数中

constantValue.dynamic()

默认情况下,我们假设您使用的是最大值设置的常数。如果想要设置不同的类型

constantValue.dynamic(type: .max)
constantValue.dynamic(type: .mid)
constantValue.dynamic(type: .min)

基于框架布局

 anyView.frame = CGRect(x: 0, y: 20.dynamic(), width: 100.dynamic(), height: 100.dynamic())

使用自动布局约束

anyView.leftAnchor.constraint(equalTo: superView.leftAnchor, constant: 20.dynamic()).isActive = true
anyView.rightAnchor.constraint(equalTo: superView.rightAnchor, constant: -20.dynamic()).isActive = true
anyView.topAnchor.constraint(equalTo: superView.topAnchor, constant: 10.dynamic()).isActive = true
anyView.bottomAnchor.constraint(equalTo: superView.bottomAnchor, constant: -20.dynamic()).isActive = true

使用图层属性

anyView.layer.cornerRadius = 8.dynamic()
anyView.layer.borderWidth = 5.dynamic()

使用字体大小

anyLabel.font = UIFont.boldSystemFont(ofSize: 16.dynamic()) 
anyLabel.font = UIFont.systemFont(ofSize: 14.dynamic())

根据您的需求配置类别百分比

DynamikosConfig.set(max: 100, mid: 90, min: 80)