DeclarativeUIKit
UIKit Autolayout 的声明式表述库
声明式地编写 UIKit Autolayout 的库。
self.declarative {
UIScrollView.vertical {
UIStackView.vertical {
UIView()
UIButton()
UILabel()
}
}
}
安装
Swift 包管理器
一旦您已经设置了 Swift 包,添加 DeclarativeUIKit 作为依赖项就像将其添加到 Package.swift 的 dependencies 值一样简单。
dependencies: [
.package(url: "https://github.com/sakiyamaK/DeclarativeUIKit", .upToNextMajor(from: "0.2"))
]
要使用 Xcode 安装 DeclarativeUIKit 包
转到文件 -> Swift 包 -> 添加包依赖... 然后搜索 https://github.com/sakiyamaK/DeclarativeUIKit 并选择您想要的版本
CocoaPods
CocoaPods 是 Cocoa 项目的依赖项管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 DeclarativeUIKit 集成到您的 Xcode 项目中,请将其指定在您的 Podfile
中
pod 'DeclarativeUIKit'
文档
English
Japanese
快速入门
import UIKit
import DeclarativeUIKit
final class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
self.declarative {
UIScrollView.vertical {
UIStackView.vertical {
UIView()
.apply { view in
print("命令的に記述も可能")
view.tintColor = .black
view.isUserInteractionEnabled = true
}
.size(width: 100, height: 100)
.backgroundColor(.red)
.transform(.init(rotationAngle: 45.0 / 360 * Double.pi))
.cornerRadius(30, maskedCorners: [.layerMinXMinYCorner, .layerMaxXMaxYCorner])
.border(color: .blue, width: 10)
.customSpacing(40)
UIButton()
.title("button", for: .normal)
.titleColor(.brown, for: .normal)
.add(target: self, for: .touchUpInside, { _ in
print("タッチアクション")
})
Array(1 ... 10).compactMap { num in
UILabel("\(num)番目のlabel")
.textColor(.black)
.textAlignment(.center)
}
UIView.spacer()
}
.spacing(20)
}
}
}
}
Xcode 预览
使用 Xcode 预览可以不进行构建就能检查布局
Xcode 预览让您能够不必构建就检查布局
import SwiftUI
struct DeclarativeViewController_Wrapper: UIViewControllerRepresentable {
typealias ViewController = DeclarativeViewController
func makeUIViewController(context: Context) -> ViewController {
let vc = ViewController()
return vc
}
func updateUIViewController(_ vc: ViewController, context: Context) {
}
}
struct DeclarativeViewController_Previews: PreviewProvider {
static var previews: some View {
Group {
DeclarativeViewController_Wrapper()
}
}
}
其他示例
-
示例项目
-
基本示例
这是基本使用的样本
以下是一个基本使用的示例
-
CollectionView
这是 UICollectionView 的基础示例
这是一个 UICollectionView 的基础示例。
-
MVP 架构
这是使用 MVP 架构执行 Github API 的示例
这是一个在 MVP 架构上运行 Github API 的示例。
-
复制 SwiftUI 教程第 1 章
这是一个模仿 Apple 官方 SwiftUI 教程的第 1 章 的示例。
-