以宣告式風格初始化 UIKit 元件的 Swift Package——閉包初始化器搭配 @resultBuilder 約束 DSL。
- DeclarativeInitialization:任何
UIView子類都能用設定閉包直接初始化;UIButton(可帶ButtonType)、UIStackView、UITableView另有專用參數版 - ConstraintBuilder:
@resultBuilder約束 DSL——addSubview(_:withConstraints:)加入子視圖同時掛約束、自動處理translatesAutoresizingMaskIntoConstraints與 activate,支援if/for/switch組約束
import ConstraintBuilder
import DeclarativeInitialization
let titleLabel = UILabel {
$0.text = "Hello"
$0.font = .preferredFont(forTextStyle: .title1)
}
view.addSubview(titleLabel) {
equal(\.centerXAnchor, to: view)
equal(\.topAnchor, to: view, \.safeAreaLayoutGuide.topAnchor, constant: 16)
equal(\.heightAnchor, to: 44)
}單一 library 內含兩個 module,依需求分別
import。
.package(url: "https://github.com/UnpxreTW/UIInitializerKit", branch: "main")UIButton.Configuration專用簡化初始化器(#4)UIVisualEffectView快捷初始化器(#1)
Swift 6.0+、UIKit(CI 以 Xcode 26.3 iOS Simulator 建置)
Apache-2.0(REUSE 合規)