DCUniComponent.h
4.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
//
// 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