JSPatch学习系列-UI进阶
来源:互联网 发布:html5音乐播放器源码 编辑:程序博客网 时间:2024/05/17 04:01
02-UI进阶
学习大纲
- TableView数据源方法
- TableView代理方法
- dealloc引发的问题
示例代码
初始化导航控制器根控制器
defineClass('ViewController', { viewDidLoad:function() { // 调用OC中的viewDidLoad方法 self.ORIGviewDidLoad(); // 设置title self.setTitle('首页'); // 绑定导航栏右侧按钮事件 self.bindEvent(); }, touchesBegan_withEvent:function(touches, event) { self.ORIGtouchesBegan_withEvent(touches, event); require('UIBarButtonItem, UIButton'); var btn = self.navigationItem().rightBarButtonItem(); }, bindEvent:function() { require('UIBarButtonItem, UIButton'); // 控制器跳转 var btnRight = self.navigationItem().rightBarButtonItem(); btnRight.setTarget(self); btnRight.setAction('pushToTableViewController'); }, pushToTableViewController:function() { require('TableViewController'); var destVc = TableViewController.alloc().init(); self.navigationController().pushViewController_animated(destVc, 1); }})
设置TableViewController
defineClass('TableViewController : UITableViewController', { viewDidLoad:function() { dataSource = null; // self.ORIGviewDidLoad(); self.setTitle('列表页'); self.setupData(); self.tableView().setRowHeight(55); // 设置行高 // self.tableView().setDelegate(self); // self.tableView().setDataSource(self); var flag = self.tableView().hidden(); // console.log('hidden=' + flag); // 判断视图是否是隐藏状态 // 调用控制器中已经存在的方法 self.warning_complete(0, block("", function(){ console.log('重写dealloc方法,来回 push & pop 会报错,why?'); })); self.warning_complete(1, block("", function(){ console.log('如何定义带block的方法?'); })); }, /********************************************************************************************/ // 重写dealloc方法,来回 push & pop 会报错,why? /********************************************************************************************/ // dealloc:function() { // self.ORIGdealloc(); // console.log('dealloc'); // }, tableView_numberOfRowsInSection:function(tableView, section) { return dataSource.length; }, // 创建cell tableView_cellForRowAtIndexPath:function(tableView, indexPath) { require('UITableViewCell'); var cell = tableView.dequeueReusableCellWithIdentifier('Cell'); if (cell == false) { cell = UITableViewCell.alloc().initWithStyle_reuseIdentifier(0, 'Cell'); } return cell; }, // 赋值cell tableView_willDisplayCell_forRowAtIndexPath:function(tableView, cell, indexPath) { cell.textLabel().setText(dataSource[indexPath.row()]); }, tableView_didSelectRowAtIndexPath:function(tableView, indexPath) { // var alert = require('UIAlertView').alloc().init(); // alert.setTitle('提示'); // 标点符号不能是中文状态下的!否则报错:`SyntaxError: Invalid character '\u65307'` // alert.setMessage('选中了第 ' + indexPath.row() + ' 行'); // // alert.setDelegate(self); // alert.addButtonWithTitle('取消'); // alert.addButtonWithTitle('确定'); // // var alert = require('UIAlertView').alloc().initWithTitle_message_delegate_cancelButtonTitle_otherButtonTitles("title", "message", self, "取消", null); // alert.show(); // 调用带有block参数的方法 self.add_b_complete(0, indexPath.row(), block("BOOL, int", function(flag, sum) { if (flag) { console.log("sum=" + sum)}; })); // self.add(3, 7, function(){ // console.log('匿名函数。。。'); // }); // self.add(3, 7, self.complete); }, // 为表格提供数据源 setupData:function() { var data = self.getProp('data'); if (data) {return data;}; data = []; var length = 50; for (var i = length - 1; i >= 0; i--) { data.push('hello world - ' + (length-i-1)); }; self.setProp_forKey(data, 'data'); dataSource = data; }, /********************************************************************************************/ // 如何定义带block的方法? /********************************************************************************************/ add:function(num1, num2, xxx) { var sum = num1 + num2; xxx(); // self.complete(sum, 1); }, complete:function() { console.log('sum=' + 1 + ' flag=' + 1); }});/*function complete1(sum, flag) { console.log('sum=' + sum + ' flag=' + flag);}*//*// 这里不能有“//”这种行内注释?否则就报错:SyntaxError: Unexpected end of script// sdfsdf*/
- 源码下载:点我下载源码
0 0
- JSPatch学习系列-UI进阶
- JSPatch学习系列-UI基础
- JSPatch学习系列-JSPatch简介
- [3] UI原型设计工具Pencil Project 学习系列----- 进阶
- JSPatch学习
- JSPatch的初步学习
- JSPatch学习(一)
- JSPatch学习(二)
- 热更新JSPatch学习:
- node学习笔记<进阶系列>
- iOS开发-进阶:JSPatch 实现原理详解
- Android UI学习系列文章
- Android UI学习系列文章
- IOS UI基础学习系列
- IOS UI高级学习系列
- JSPatch
- JSPatch
- JSPatch
- activiti 数据库配置错误:ORA-12505, TNS:listener does not currently know of SID given in connect desc
- 五个免费UML建模工具推荐
- 未来的路很长,要学会一个人走。
- 欢迎使用CSDN-markdown编辑器
- JAVA编码转换的详细过程
- JSPatch学习系列-UI进阶
- [探讨]开发者眼中的PhoneGap体验
- 倒计时按钮,iOS
- 技术框架小知识点之框架搭建
- RMQ(Range Minimum Query)问题
- 磁盘测试过程
- Struts2实现原理(附上自己理解)
- bzoj 3441
- IOS-学习笔记(3)