123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- //
- // DCUniNativeComponent.h
- //
- // Created by DCloud on 2020/10/12.
- // Copyright © 2020 DCloud. All rights reserved.
- //
- #import "DCUniBasePlugin.h"
- NS_ASSUME_NONNULL_BEGIN
- @interface DCUniComponent : DCUniBaseCompenent
- /**
- *
- *
- * @param ref 组件的标识
- * @param type 组件的类型
- * @param styles 组件的样式
- * @param attributes 组件的属性
- * @param events 组件的事件
- * @param uniInstance 与组件关联的uniInstance
- *
- */
- -(void)onCreateComponentWithRef:(NSString *)ref type:(NSString *)type
- styles:(NSDictionary *)styles
- attributes:(NSDictionary *)attributes
- events:(NSArray *)events uniInstance:(DCUniSDKInstance *)uniInstance;
- /**
- * @abstract The component's supercomponent.
- */
- @property (nonatomic, readonly, weak, nullable) DCUniSDKInstance * uniInstance;
- /**
- * @abstract 该组件的子组件
- */
- @property (nonatomic, readonly, strong, nullable) NSArray<DCUniComponent *> * uniSubcomponents;
- /**
- * @abstract 该组件的父组件
- */
- @property (nonatomic, readonly, weak, nullable) DCUniComponent * uniSupercomponent;
- /**
- * @abstract 组件的视图
- */
- @property(nonatomic, readonly, strong) UIView *view;
- //View 层级相关
- /**
- * @abstract 从父视图中删除该组件的视图。
- *
- * @discussion 该方法在主线程上调用。
- */
- - (void)removeFromSuperview;
- // 生命周期 相关函数
- /**
- * @abstract 创建组件管理的视图
- *
- * @return 返回创建的视图
- *
- * @discussion 此方法加载或创建视图,并将其分配给view属性。 子类应在此处创建其自定义视图层次结构。不要直接调用该方法。
- *
- * @warning 对此方法的自定义实现 不要调用super
- */
- - (UIView *)loadView;
- /**
- * @abstract 返回一个布尔值,标识视图是否加载完毕。
- */
- - (BOOL)isViewLoaded;
- /**
- * @abstract 在加载组件视图之前调用
- *
- * @discussion 这是在-loadView之前。 该方法在主线程上调用。
- */
- - (void)viewWillLoad;
- /**
- * @abstract 在加载并设置组件的视图之后调用。
- *
- * @discussion 这是在-loadView之后。 这是执行额外初始化的最佳时间,例如向视图添加手势识别器。该方法在主线程上调用。
- */
- - (void)viewDidLoad;
- /**
- * @abstract 在释放组件的视图之前调用。方法在主线程上调用。
- */
- - (void)viewWillUnload;
- /**
- * @abstract 在释放组件的视图时调用。在主线程上调用该方法。
- */
- - (void)viewDidUnload;
- // 向JS发消息
- /**
- * @abstract 向JS 中的组件触发事件。
- *
- * @param eventName 要触发的事件的名称
- * @param params 要触发的参数
- **/
- - (void)fireEvent:(NSString *)eventName params:(nullable NSDictionary *)params;
- /**
- * @abstract 向组件触发事件,并告诉JS哪个值已更改。
- * 用于双向数据绑定。
- *
- * @param eventName 要触发的事件的名称
- * @param params 要触发的参数
- * @param domChanges 值已更改,用于双向数据绑定。
- **/
- - (void)fireEvent:(NSString *)eventName params:(nullable NSDictionary *)params domChanges:(nullable NSDictionary *)domChanges;
- // 样式相关函数
- /**
- * @abstract 组件样式更新时调用
- *
- * @param styles 更新的样式字典
- * @discussion 重写来处理特定的样式更新。 该方法在主线程上调用。
- **/
- - (void)updateStyles:(NSDictionary *)styles;
- /**
- * @abstract 重置组件样式时调用
- *
- * @param styles 重置样式的元素
- * @discussion 可以重写它来处理特定的样式重置。 该方法在主线程上调用。
- **/
- - (void)resetStyles:(NSArray *)styles;
- // 属性相关函数
- /**
- * @abstract 组件属性更新时调用
- *
- * @param attributes 更新的属性字典
- * @discussion 可以覆盖它以处理特定的属性更新。 该方法在主线程上调用。
- **/
- - (void)updateAttributes:(NSDictionary *)attributes;
- /**
- * @abstract 在向组件添加事件时调用
- *
- * @param eventName 添加的事件的名称
- * @discussion 可以覆盖它以处理特定事件的添加。 该方法在主线程上调用。
- **/
- - (void)addEvent:(NSString *)eventName;
- /**
- * @abstract 从组件中删除事件时调用
- *
- * @param eventName 删除的事件的名称
- * @discussion 可以重写它来处理特定的事件删除。 该方法在主线程上调用。
- **/
- - (void)removeEvent:(NSString *)eventName;
- @end
- NS_ASSUME_NONNULL_END
|