这两天在做一个插件,RN 调用iOS 端封装的一个Vew,需要对这个view 进行点击操作,跳转到横屏进行处理。经实验发现,iOS端,在view 外面包一个<TouchableOpacity>可以实现view 的点击透传,但andriod 端不起作用,为了和andriod 端保持一致,所以学习了下事件的传递。
下面以一个Demo,进行说明,由于是新手,难免会有理解不当,如有错,望前辈们指点一下。
该Demo 主要实现的功能是初始根据JS 端给的初值,调用Xcode 端图片,生成view,并旋转90度(这里只是想记忆一下view 旋转90度的方法),然后点击图片,并传message给JS,在JS端重新刷新页面,改变text 值,这个传来的值,也会以warn 的形式显示。
1.首先在Xcode 创建四个文件,并放两个图片名为"one.jpg"和"two.jpg"
- BridgeView.h代码如下:其中propertyArr初值会从JS端传过来。
#import <UIKit/UIKit.h>
#import <React/RCTComponent.h>
NS_ASSUME_NONNULL_BEGIN
@interface BridgeView : UIImageView
@property (nonatomic,strong)NSArray *propertyArr;
@property(nonatomic,strong)RCTBubblingEventBlock onClick;
@end
NS_ASSUME_NONNULL_END
- BridgeView.m代码如下:根据propertyArr设置View 显示哪张图片以及是否旋转90度。在封装的view 里添加了一个点击事件,通过此事件把message信息传给JS。
#import "BridgeView.h"
&