PDRNView.h
2.71 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
//
// PDRNView.h
// Pandora
//
// Created by Pro_C Mac on 13-4-7.
//
//
#import "PGMethod.h"
#import "PGPlugin.h"
#import <UIKit/UIKit.h>
typedef enum PDRNViewBelongTo {
PDRNViewUnmarried,
PDRNViewThrowout,
PDRNViewInWindow,
PDRNViewInWebview,
PDRNViewInWebviewGroup,
PDRNViewInTab,
}PDRNViewBelongTo;
typedef NS_OPTIONS(NSUInteger, PDRNViewFeatureMask) {
PDRNViewFeatureMaskAsFllowView = (1 << 0),
PDRNViewFeatureMaskCreateFromWebviewStyleSubNviews = (1 << 1),
PDRNViewFeatureMaskStart = 2
};
/**
NView基类所有扩展出的NView插件都应该从该类继承
*/
@interface PDRNView : UIView
/// @brief JavaScript执行环境
@property (nonatomic, assign)PGPlugin *JSContext;
/// @brief NView插件类别名称
@property (nonatomic, copy) NSString *identity;
@property (nonatomic, assign)BOOL preventLayout;
@property (nonatomic, readonly)UIView *statusbarView;
/// @brief NView唯一标识
@property (nonatomic, copy) NSString *viewName;
@property (nonatomic, copy) NSString *viewUUID;
@property (nonatomic, copy) NSString *jsCallbackId;
@property (nonatomic, copy) NSString *parent;
@property (nonatomic, strong)UIViewController* viewController;
@property (nonatomic, retain, readonly)NSDictionary* options;
@property (nonatomic, assign)BOOL autoAppendStatusBar;
@property(nonatomic, assign)PDRNViewBelongTo belongTo;
@property(nonatomic, assign)NSUInteger featureMask;
/**
@brief 使用JS NViewOption创建NView 子类应该重写该方法实现初始化
@param options NViewOption
@return id NView对象
*/
- (id)initWithOptions:(NSDictionary*)options;
- (id)initWithOptions:(NSDictionary*)aOptios withJsContext:(PGPlugin*)jsContext;
- (id)initWithFrame:(CGRect)frame withOptions:(NSDictionary*)aOptios withJsContext:(PGPlugin*)jsContext;
- (void)setOptions:(NSDictionary *)options;
- (void)createStatusbar;
- (void)destoryStatusbar;
- (void)setStatusbarColor:(UIColor*)bkColor;
/**
@brief 分发event事件
@param evtName 事件名称
@return 无
*/
- (void)dispatchEvent:(NSString*)evtName;
/**
@brief NView从NWindow上移除时回调
@param
@return 无
*/
- (void)onRemoveFormSuperView;
- (void)onLayout_;
- (NSData*)getMettics:( PGMethod*) pMethod;
// 返回当前控件最小尺寸,可以是%,或者PX值,或者Auto
- (NSDictionary*)GetMiniControllerSize:(int)nOri;
- (void)CreateView:(PGMethod*)pMethod;
- (NSString*)getObjectString;
- (void)removeFormUIStrack;
- (void)removeStyleForKey:(NSString*)key;
- (void)setStyle:(id)value forKey:(NSString*)key;
-(CGRect)measureSubViewRect:(CGRect)wBounds;
- (void)addFeatureMask:(PDRNViewFeatureMask)mask;
- (BOOL)hasFeatureMask:(PDRNViewFeatureMask)mask;
- (CGFloat)getStatusBarHeight;
- (BOOL)hasStatusBar;
+ (BOOL)isViewVisual:(UIView*)view;
@end