UICreator 1.1.1

UICreator 1.1.1

Brenno de Moura 维护。



UICreator 1.1.1

  • brennobemoura

UICreator

Swift Version License Platform

安装

UICreator 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:

pod 'UICreator'

名称 状态 描述
UIViewController UICHostingView 用于托管 UICreator 的 View。
UINavigationController UICNavigation 可以使用 UICNavigation.Other 进行自定义导航。
UITabController UICTab 定义了一个包含 UICTabItem 的标签栏来创建标签视图。
UICPage UIPageViewController 🟡 创建页面视图。
UIView UICSpacer 它包含许多从 UIView 继承的属性,有助于在该组件内进行内容间距。
UIStackView UICStack 它有两种变体 UICVStackUICHStack
UILabel UICLabel 它将在屏幕上显示文本。
UITextField UICText 是可编辑的文本。
UITextView UICScrollText 它是一个可编辑的滚动文本。
UIScrollView UICScroll 具有两种变体 UICVScrollUICHScroll 的可滚动内容。
UIImageView UICImage 它将在屏幕上显示图像。
UIButton UICButton 它是带有控件设置的视图。
UICActivity UIActivityIndicatorView 使用 isLoading 来显示指示器。
UICPageControl UIPageControl 通过显示当前页面指示器来工作。
-- UICRounder 用于设置cornerRadius和边框布局。
-- UICZStack 展示多个子视图。
-- UICViewRepresentable 用于将UIKit视图转换为UICreator视图。
UITableView UICList 🟡 使用UICRowUICHeaderUICFooterUICSection来列表视图。仅实现了一些功能。
UICollectionView UICCollection 使用UICRowUICHeaderUICFooterUICSection来列表视图。可以使用UICFlow,它使用UICollectionFlowLayout。创建视图布局时使用layoutMaker(_:)。仅实现了一些功能。

响应式对象

对象 状态 描述
在视图中存储值。使用$将其转换为Relay对象。
Relay 🟡 用于通过sync(_:)next(_:)更新视图属性。还有一些特殊的属性,如bind(to:)map(_:)flatMap(_:)。它支持一些与布尔值相关的操作,如self.$isEnabled && self.$isEmpty,结果为Relay。需要更多的方法来实现更多的灵活性。
属性 🟡 允许视图根据UIView的值改变行为。使用$访问将返回一个Relay。需要在主体中的任何视图上调用dynamicProperty(_:)进行配置。

UIKit包装器

对象 状态 描述
UICOutlet 作为一种方法在ViewCreator中存储视图的引用。通过在主体getter中的视图上调用as(_:)方法进行配置。

命令式方法

大部分带回调的函数以UIView作为参数返回。

方法 生命周期 描述
onNotRendered(_:) 仅一次 当UIView将移动到父视图时,回调将被调用。
onRendered(_:) 仅一次 当UIView移动到父视图时,它将被调用。
onInTheScene(_:) 仅一次 当UIView移动到窗口时,它将被调用。
onLayout(_:) 永远 当uiview布局子视图时。
onTrait(_:) 永远 当特性改变时。
onAppear(_:) 永远 当UIView不被隐藏或移动到层次结构时。
onDisappear(_:) 永远 当 UIView 隐藏或退出层次结构时。

手势

除了调用 ViewCreator 协议中的方法外,还可以使用 on{Gesture}Maker(_:) 声明性创建手势。

UIGestureRecognized 方法
UITapGestureRecognized 点击 onTap(_:)
-- 触摸 onTouch(_:)
UIHoverGestureRecognized 悬停 onHover(_:)
UILongPressGestureRecognizer 长按 onLongPress(_:)
UIPanGestureRecognizer 拖动 onPan(_:)
UIPinchGestureRecognizer 捏合 onPinch(_:)
UIRotationGestureRecognizer 旋转 onRotation(_:)
UIScreenEdgePanGestureRecognizer 屏幕边缘拖动 onScreenEdgePan(_:)
UISwipeGestureRecognizer 滑动 onSwipe(_:)

控制

根据视图,UIControl 在某些事件发生时调用选择器。_control 协议使来自扩展了 UIControl 的视图的事件能够提供 onEvent(_:, _:) 方法。这样,_UICText_ 就实现了 _onEditingDidEnd(_:)_ 和其他从 _UIControl_ 继承的方法。

代码示例

前往查看此存储库以了解和学习该库:[UICreator 示例](https://github.com/brennobemoura/UICreator-Examples)

import UICreator
class LandmarkRow: UICView {
    let landmark: Landmark
	
    init(landmark: Landmark) {
        self.landmark = landmark
    }

    var body: ViewCreator {
        UICSpacer(vertical: 5) {
            UICHStack {
                UICImage(image: self.landmark.image)
                    .aspectRatio()
                    .height(equalTo: 50)
                    .content(mode: .scaleAspectFill)
                    .clipsToBounds(true)
					
                UICLabel(self.landmark.name)
                UICSpacer()
            }
            .spacing(15)
        }
    }
}

作者

brennobemoura, [email protected]

许可

UICreator 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。