react-native iOS 原生组件 swift版

    xiaoxiao2021-03-25  126

    最近在学习着react-native,看到可以封装组件功能,就尝试着封装一个swift版本的(网上搜半天都是oc愣是研究半天)

    初始化一个React-native工程后,因是oc工程,直接创建一个swift的类会提示创建Bridging-header的头文件.

    将用到的React的文件引入

    #import <React/RCTBridgeModule.h> #import <React/RCTBundleURLProvider.h> #import <React/RCTRootView.h> #import <React/RCTViewManager.h> 然后创建一个.m的oc文件引入对应的头文件

    我创建的为CamerManageBridge.m

    #import <React/RCTBridgeModule.h> #import <React/RCTViewManager.h> #import "工程名-Swift.h"第三个文件为与swift创建的类引用进 .规范则为工程名-Swift.h

    CamerManageBridge.m代码实现

    @interface CameraManage: RCTViewManager @end @implementation CameraManage RCT_EXPORT_MODULE() - (UIView *) view { return [[CameraView alloc] initWithFrame:[UIScreen mainScreen].bounds]; } @end

    上CameraView则为swift创建的文件.

    继承自React-native  的RCTViewManager

    RCT_EXPORT_MODULE()则为暴露给js看的---具体官网API都很有详细介绍到.

    最后将该View直接返回给React-native使用

    使用方法:

    import { requireNativeComponent, } from 'react-native' let Camera = requireNativeComponent("CameraManage",CameraView); export default class CameraView extends Component { constructor(props) { super(props); this.state = { }; } render(){ return( <Camera /> ); } }以上则为我这两天折腾出的效果.

    转载请注明原文地址: https://ju.6miu.com/read-12852.html

    最新回复(0)