JSPatch下发笔记4

简介: JSPatch下发笔记4

OC代码:

@implementation NewHomeDetailController
- (void)layoutSubviews{
    self.homeDetailView = [[NewHomeDetailView alloc]initWithFrame:self.view.bounds];
    [self.view addSubview:self.homeDetailView];
    [self.homeDetailView.collectBtn addTarget:self action:@selector(collection:) forControlEvents:UIControlEventTouchUpInside];
    [self.homeDetailView.weekView addTarget:self action:@selector(weekRent:) forControlEvents:UIControlEventTouchUpInside];
    [self.homeDetailView.monthView addTarget:self action:@selector(monthRent:) forControlEvents:UIControlEventTouchUpInside];
    [self.homeDetailView.publishBtn addTarget:self action:@selector(publish) forControlEvents:UIControlEventTouchUpInside];
    self.homeDetailView.bannerView.collectionViewDelegate = self;
    [self createBottomView];
    [self initRentNumView];
    self.homeDetailView.scrollView.delegate = self;
    _listArray = [NSMutableArray arrayWithArray:@[@"\u21e6   首页", @"\u273f   搜索", @"\u2742   社区"]];
    _cellView = [[MLMOptionSelectView alloc] initOptionView];    
    [self initCalendarData];   
}
- (void)createWebView {
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@/%@",kAccountManager.WEB_DOMAIN_URL,API_NEISHA_DETAIL,self.proId]];
    _requestUrl=url.absoluteString;
    [self.homeDetailView.webView loadRequest:[NSURLRequest requestWithURL:url]];
    self.homeDetailView.webView.delegate = self;
    [_homeDetailView.webView.wkWebView.scrollView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil];
}
@end
@implementation NSString (Float)
- (NSString *)formatFloat
{
    NSString *str = [NSString stringWithFormat:@"%.2f",self.floatValue];
    return str;
}
@end


JS代码:

require("NewHomeDetailView, NSMutableArray, MLMOptionSelectView,NSString,NSString+Float, NSURLRequest, NSURL,UIFont");
defineClass("NewHomeDetailController", {
            layoutSubviews: function() {
            self.setHomeDetailView(NewHomeDetailView.alloc().initWithFrame(self.view().bounds()));
            self.view().addSubview(self.homeDetailView());
            var UIControlEventTouchUpInside  = 1 << 6;
            self.homeDetailView().collectBtn().addTarget_action_forControlEvents(self, "collection:", UIControlEventTouchUpInside);
            self.homeDetailView().weekView().addTarget_action_forControlEvents(self, "weekRent:", UIControlEventTouchUpInside);
            self.homeDetailView().monthView().addTarget_action_forControlEvents(self, "monthRent:", UIControlEventTouchUpInside);
            self.homeDetailView().publishBtn().addTarget_action_forControlEvents(self, "publish", UIControlEventTouchUpInside);
            self.homeDetailView().bannerView().setCollectionViewDelegate(self);
            self.createBottomView();
            self.initRentNumView();
            self.homeDetailView().scrollView().setDelegate(self);
            var str1 = "\U0000e75f";
            self.setValue_forKey(["\u21e6   首页", "\u273f   搜索", "\u2742   社区"], "_listArray");
            self.setValue_forKey(MLMOptionSelectView.alloc().initOptionView(), "_cellView")
            self.initCalendarData();
            }
            });
defineClass("NewHomeDetailController", {
            createWebView: function() {
            var url = NSURL.URLWithString(NSString.stringWithFormat("http://www.neisha.cc/app/pro/iosD/%@",self.proId()));
            var _requestUrl = self.valueForKey("_requestUrl");
            _requestUrl = url.absoluteString();
            self.homeDetailView().webView().loadRequest(NSURLRequest.requestWithURL(url));
            self.homeDetailView().webView().setDelegate(self);
            var _homeDetailView = self.valueForKey("_homeDetailView");
            _homeDetailView.webView().wkWebView().scrollView().addObserver_forKeyPath_options_context(self, "contentSize", 0x01, null);
            }
            }, {});
defineClass("NSString", {
            formatFloat: function() {
            var str = NSString.stringWithFormat("%@",self.floatValue().toFixed(2));
            return str;
            }
            });


总结:

1.修改多个类中的代码,用defineClass("");分隔。

2.遇到枚举值用原值代替

目录
相关文章
|
4月前
|
JavaScript 前端开发
Vue、ElementUI配合Node、multiparty模块实现图片上传并反显_小demo
如何使用Vue和Element UI配合Node.js及multiparty模块实现图片上传并反显的功能,包括前端的Element UI组件配置和后端的Node.js服务端代码实现。
67 1
|
8月前
|
安全
JSPatch被停用了,也就是不能使用JSPatch第三方框架热修复了
JSPatch被停用了,也就是不能使用JSPatch第三方框架热修复了
118 0
|
8月前
|
JavaScript API
Vue.js组件精讲 组件的通信2:派发与广播——自行实现dispatch和broadcast方法
Vue.js 的 provide/inject API 主要用于跨级组件通信,侧重于子组件获取上级状态。但无法良好处理两种场景:父向子(跨级)传递数据和子向父(跨级)传递数据。在这种情况下,虽然Vue推荐使用Vuex,但在某些场景下,可以使用自定义的`dispatch`和`broadcast`方法。这两个方法在Vue 1.x中存在,但在2.x中被废弃。`$emit`用于触发当前组件的自定义事件,而`$on`用于监听这些事件。在Vue 2.x中,我们将自行实现`dispatch`和`broadcast`以实现类似的功能,允许父子组件(包括跨级)之间的通信,特别是当组件层级不深且无需全面状态管理时
64 0
|
算法
vue2-patch流程分析
我们在上篇文章分析了虚拟节点的创建及渲染流程,其中也有简单分析了 patch 过程,但是对于新旧节点的对比逻没有去仔细分析,所以我们打算好好梳理下 patch 的整个流程。
|
Web App开发 JavaScript iOS开发
JSPatch 断点调试
JSPatch 断点调试
155 0
JSPatch 断点调试
|
JavaScript
JSPatch下发笔记7
JSPatch下发笔记7
139 0
|
JavaScript
JSPatch下发笔记2
JSPatch下发笔记2
146 0
|
JavaScript
JSPatch下发笔记10
JSPatch下发笔记10
117 0
|
JavaScript
JSPatch下发笔记9
JSPatch下发笔记9
112 0
|
JavaScript
JSPatch下发笔记1
JSPatch下发笔记1
122 0