/ElementGenerator.swift Secret
Created
December 28, 2023 09:06
2.2 新增generator协议
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// FILE: ElementGenerator.swift | |
protocol ElementGenerator { | |
/// 向 stack view 添加子控件 | |
/// - Parameters: | |
/// - elements: 子控件列表 | |
/// - stackView: stack view | |
func addArrangedElements(_ elements: [ElementType], to stackView: UIStackView) | |
/// 根据子控件类型描述生成子控件 | |
/// - Parameter element: 子控件类型描述 | |
/// - Returns: 子控件 | |
func elementView(from element: ElementType) -> UIView | |
/// 在子控件添加到 stack view 之后,继续设置子控件的属性 | |
/// - Parameters: | |
/// - view: 子控件 | |
/// - element: 子控件描述 | |
func configureView(_ view: UIView, for element: ElementType) | |
} | |
extension ElementGenerator { | |
func addArrangedElements(_ elements: [ElementType], to stackView: UIStackView) -> Void { | |
for element in elements { | |
let subview = elementView(from: element) | |
stackView.addArrangedSubview(subview) | |
configureView(subview, for: element) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment