https://github.com/pardnchiu/ExSwift
ExSwift is a declarative UIKit extension, enabling fluent chaining syntax. Streamlines iOS UI development with enhanced components, intuitive layouts, and native compatibility.
https://github.com/pardnchiu/ExSwift
chiuchingwei declarative-programming fluent-chaining-methods pardnchiu pardnio pardnltd swift-library
Last synced: about 2 months ago
JSON representation
ExSwift is a declarative UIKit extension, enabling fluent chaining syntax. Streamlines iOS UI development with enhanced components, intuitive layouts, and native compatibility.
- Host: GitHub
- URL: https://github.com/pardnchiu/ExSwift
- Owner: pardnchiu
- License: other
- Created: 2019-06-12T16:26:53.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-12-16T10:10:10.000Z (6 months ago)
- Last Synced: 2025-03-31T13:26:59.834Z (2 months ago)
- Topics: chiuchingwei, declarative-programming, fluent-chaining-methods, pardnchiu, pardnio, pardnltd, swift-library
- Language: Swift
- Homepage:
- Size: 1.73 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
新版 Framework 正在優化中,後續將釋出給各位方便整合導入。
新版擴展特色與功能優化
新版擴展將對項目進行全面升級,針對各項擴展進行優化,並引入以下核心改進:
- 避免與原生方法衝突
除了少量需要在原生擴展以外,剩餘自定義擴展功能將採用繼承方式,獨立命名空間,確保穩定性和兼容性。
- 統一命名與類型設計
新版將對常見 UIKit 元件提供專屬子類,結構清晰,使用更靈活。
例如:
- UIView → ExZStack
- UILabel → ExText
- UIButton → ExButton
- UIImageView → ExImage
- UITextfield → ExTextField
- UITextView → ExTextEditor
- UIStackView → ExVStack, ExHStack, ExStack
- UIScrollView → ExVScroll, ExHScroll, ExScroll- 高效功能整合
新版框架將集成多項優化功能,簡化開發流程,提升代碼可讀性與可維護性。## 文檔 (還在整理,後續會主要用網站展示)
- [ExZStack](./README/ExZStack.md)
- [ExText](./README/ExText.md)
- [ExButton](./README/ExButton.md)
- [ExImage](./README/ExImage.md)
- [ExTextField](./README/ExTextfield.md)
- [ExTextEditor](./README/ExTextEditor.md)
- [ExStack](./README/ExStack.md)
- [ExScroll](./README/ExScroll.md)## 範例
> [!Note]
> 快速構建複雜界面 使用鏈式語法與巢狀結構,無需冗長的屬性設定語句,即可快速構建層次清晰的 UI 元件,顯著提升代碼的可讀性與可維護性。```Swift
var bool = false;
myView.subview([
// 主容器視圖
ExZStack()
.frame(x: 0, y: 0, width: 300, height: 400) // 設置框架大小
.background(color: .white) // 背景設為白色
.subview([
// 子視圖 1:標題容器
ExZStack()
.frame(x: 10, y: 10, width: 280, height: 50) // 設置大小與位置
.background(color: .lightGray) // 背景設為淺灰
.subview([
ExText()
.frame(x: 10, y: 10, width: 260, height: 30) // 設置標籤框架
.text("標題1", color: .red, alignment: .center) // 設置標題文字
.background(color: .clear) // 背景透明
.if(bool) {
$0.text("標題2", color: .black, alignment: .center) // 設置標題文字
}
]),// 子視圖 2:按鈕容器
ExZStack()
.frame(x: 10, y: 70, width: 280, height: 300) // 按鈕容器框架
.background(color: .gray) // 背景設為灰色
.subview([
ExButton()
.frame(x: 20, y: 20, width: 120, height: 40) // 按鈕1框架
.background(color: .blue) // 按鈕默認背景藍色
.text("按鈕1", color: .red, state: .normal) // 按鈕文字紅色
.action(.touchUpInside) {
$0.background(color: .red) // 點擊後背景變紅
.text("已點擊", color: .white, state: .normal) // 文字變白
},
ExButton()
.frame(x: 140, y: 20, width: 120, height: 40) // 按鈕2框架
.background(color: .red, state: .normal) // 按鈕默認背景紅色
.background(color: .blue, state: .disabled) // 禁用時背景藍色
.text("按鈕2", color: .red, state: .normal) // 默認文字紅色
.text("已停用", state: .disabled) // 禁用時文字
.action(.touchUpInside) {
$0.isEnabled = false // 點擊後禁用按鈕
}
])
])
])
```