扩展iOS的功能

~  Component 与UI控件相关 ,即通过原生方法创建UI界面,返回给weex 使用

一. 新建 WXComponent 的子类

    在子类实现WXComponent 的生命周期方法

.h

#import "WXComponent.h"

@interface MyComponent : WXComponent

@end

.m

#import "WXDatePickerComponent.h"

//原生自定义的UI控件类
@interface WXDatePickerView : UIDatePicker @end @implementation WXDatePickerView @end
@interface WXDatePickerComponent()
@property (nonatomic, strong) WXDatePickerView *datePickerView;
@property (nonatomic, assign) BOOL changeEvent; @end
//component 的.m
@implementation WXDatePickerComponent
- (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance
{
if (self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance]) { }
return self;
}
//返回给weex,原生创建的UI控件
- (UIView *)loadView
{
return [[WXDatePickerView alloc] init];
} - (void)viewDidLoad
{
_datePickerView = (WXDatePickerView *)self.view;
_datePickerView.backgroundColor =[UIColor whiteColor];
[_datePickerView setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];
[_datePickerView setTimeZone:[NSTimeZone localTimeZone]];
[_datePickerView setDate:[NSDate date] animated:YES];
[_datePickerView setMaximumDate:[NSDate date]];
[_datePickerView setDatePickerMode:UIDatePickerModeDate];
[_datePickerView addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged]; }
- (void)datePickerValueChanged:(UIDatePicker *)datePicker{
if (_changeEvent) {
[self fireEvent:@"change" params:@{@"value":datePicker.date} domChanges:@{@"attrs": @{@"checked": datePicker.date}}];
}
}

二. 注册

*注意: 自定义的Component的需要在WeexSDK 初始化的时候 注册

[WXSDKEngine registerComponent:@"MyView" withClass:[MyViewComponent class]];

weex 自定义Component的更多相关文章

  1. Ionic2学习笔记(2):自定义Component

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5536298.html                     上一篇提到,Ionic2提供了很多Co ...

  2. weex 自定义Modul

    扩展iOS的功能 一. 新建 NSOjbect 子类, 并遵循协议<WXModuleProtocol> .h 代码 #import <Foundation/Foundation.h& ...

  3. #Weex与Android交互(一)

    用Weex开发Android程序 参考:开发HelloWorld程序(Weex开发) 1.创建Android工程 2.集成WeexSDK,参考[WEEX SDK 集成到 Android 工程](htt ...

  4. 第八章 交互技术,8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障(作者:鬼道)

    8.4 Weex 双11会场大规模应用的秒开实战和稳定性保障 前言 Native 开发的诸多亮点中,流畅体验和系统调用是最多被提及的.流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近 ...

  5. salesforce lightning零基础学习(四) 事件(component events)简单介绍

    lightning component基于事件驱动模型来处理用户界面的交互.这种事件驱动模型和js的事件驱动模型也很相似,可以简单的理解成四部分: 1.事件源:产生事件的地方,可以是页面中的输入框,按 ...

  6. 创建自定义的 Angular Schematics

    本文对 Angular Schematics 进行了介绍,并创建了一个用于创建自定义 Component 的 Schematics ,然后在 Angular 项目中以它为模板演练了通过 Schemat ...

  7. Weex与Android交互(二)

    扩展Android Weex 提供了扩展机制,可以根据自己的业务进行定制自己的功能. 主要分为两类扩展: Module 扩展 非UI的特定功能.例如sendHttp.openURL 等. Compon ...

  8. Angular(二) - 组件Component

    1. 组件Component示例 2. Component常用的几个选项 3. Component全部的选项 3.1 继承自@Directive装饰器的选项 3.2 @Component自己特有的选项 ...

  9. 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之自定义组件(四)

    基于Vue和Quasar的前端SPA项目实战之序列号(四) 回顾 通过上一篇文章 基于Vue和Quasar的前端SPA项目实战之布局菜单(三)的介绍,我们已经完成了布局菜单,本文主要介绍序列号功能的实 ...

随机推荐

  1. Openssl verify命令

    一.简介 verify命令对证书的有效性进行验证,verify 指令会沿着证书链一直向上验证,直到一个自签名的CA 二.语法 openssl verify [-CApath directory] [- ...

  2. libpcap编程实例

    #include <stdio.h> #include <stdlib.h> #include <pcap.h> #include <errno.h> ...

  3. [Cookie] Read Cookie and Pass in headers

    在同一个Suite里 import com.eviware.soapui.support.types.StringToStringMap def headers = testRunner.testCa ...

  4. 扩展JPA方法,重写save方法

    为什么要重构save? jpa提供的save方法会将原有数据置为null,而大多数情况下我们只希望跟新自己传入的参数,所以便有了重写或者新增一个save方法. 本着解决这个问题,网上搜了很多解决方案, ...

  5. QT学习之多线程

    [为什么要用多线程?] 传统的图形用户界面应用程序都只有一个执行线程,并且一次只执行一个操作.如果用户从用户界面中调用一个比较耗时的操作,当该操作正在执行时,用户界面通常会冻结而不再响应.这个问题可以 ...

  6. loadrunner中对https证书的配置

    1.准备好网站的证书,一般证书是cer格式: 2.因为loadrunner只支持pem格式的证书,所以要将证书转换格式,利用openssl工具:(或者直接让开发提供pem格式的证书)   3.得到pe ...

  7. laravel中使用mgirations创建和迁移数据库

    使用php artisan make:migration create_links_table命令 编辑2016_04_11_095342_create_links_table public func ...

  8. c# 与 Mysql 的通讯方式总结

    两种开发方式 1.使用 vs 自带的可视化工具,不推荐. 在 vs 的项目中添加 ‘数据集’,然后通过可视化的工具添加数据库为数据源,默认可添加 SQL Server 和 Oracle 等,添加 My ...

  9. Apache启动报错Address already in use: make_sock: could not bind to...

    Apache启动时报错:(98)Address already in use: make_sock: could not bind to... # /etc/init.d/httpd start St ...

  10. HAOI2010 订货

    题目链接:戳我 费用流. 将每天分成早上和晚上两个点.源点向早上连容量INF,费用为进货量的边.早上向汇点连容量供货量,费用0.早上向晚上连容量为S,费用为0的边.晚上向第二天早上连容量S,费用0.之 ...