IOS第二十天——实现一个简单的表
来源:互联网 发布:mac重装系统找不到硬盘 编辑:程序博客网 时间:2024/04/28 23:49
昨天我们学习了一下如何做一个登录,咳咳,登录这个是假的,但也是一个进步,那么接下来我们会学习一下关于表格(UITableView)的创建,表格是用于显示数据列表的,在iPhone中,表格只提供一列多行的形式,当然开发者也可以自定义表格来显示多行多列。
那么我们来尝试着实现一个简单的表,通过这个示例来了解表视图的工作原理。
1. 在Xcode中创建一个新项目,选择“Master-Detail Application”,取名为“MyTableView",点击Create,完成创建项目。
2. 展开项目源文件列表,MyTableView,我们可以看到有如下的文件:
3. 如果不做任何更改,直接运行的话,我们回看到一个空白的表格:(ps:我们并不是要空白的表格)
4. 我们一点一点来改变这个,往空白的表格中写如一些数据。打开"ECMasterViewController.h",添加以下代码:
- (void)viewDidLoad{ [super viewDidLoad]; //给数组赋值 NSArray *array=[[NSArray alloc] initWithObjects:@"Abc",@"Def",@"Ghi",@"JK",@"LM", nil]; self->dataArray=array;}
上述代码中,UITableViewDelegate和UITableViewDataSource这两个是我们的类遵守的协议,来充当表视图的委托和数据源,然后我们声明了一个数组,用来存放我们要展示的数据。
5. 切换到"ECMasterViewController.m"文件,修改其中代码:(注:我买的这本iPhone应用从开发到入门在现在来看好像已经是有些老了,所以接下来的这些改动,都是根据Xcode版本变化作出的相应调整,具体我会进行描述):
a) 修改视图加载方法:
- (void)viewDidLoad{ [super viewDidLoad]; //给数组赋值 NSArray *array=[[NSArray alloc] initWithObjects:@"Abc",@"Def",@"Ghi",@"JK",@"LM", nil]; self->dataArray=array;}
需要注意的是,我们这里不用直接象书中那样儿直接使用self.dataArray,而是需要使用self->dataArray
b) 添加设备屏幕为竖屏展示的方法:
//设置设备屏幕为竖屏-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ //return YES for supported orientations. return (toInterfaceOrientation==UIInterfaceOrientationPortrait);}
c) 将表格的行数设置为数组的元素个数:
//设置表格的行数为数组的元素个数- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return [self->dataArray count];}d) 接下来将数组内容展示在表格的单元格上:
//每一行的内容为数组相应索引的值// Customize the appearance of table view cells.- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } //设置单元格的字符串内容 cell.textLabel.text=[self->dataArray objectAtIndex:indexPath.row]; return cell;}这里简单介绍下最后这个方法:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath当表格视图需要绘制其中一行的时候,就会调用此方法,那么我们会注意到此方法的第二个参数是一个NSIndexPath实例,表格视图正是使用此机制把分区和行绑定到一个对象中的。要想从NSIndexPath中获得一行或一个分组,只需要调用行方法或者分组方法就可以了。这两个方法都返回一个int值,第一个参数tableView是对发起请求的表的饮用,通过它,我们就可以创建充当多个表的数据源的类。
OK,写到这里,我们来run一下看看实际运行的效果如何:
诶,这个效果确实已经丑的一坨儿了,但原谅我这个感冒了的家伙吧,今天就学到这儿,六七个小时之后再起来学习。
2013年05月04日,Eric.Tang 记
- (void)viewDidLoad{ [super viewDidLoad]; //给数组赋值 NSArray *array=[[NSArray alloc] initWithObjects:@"Abc",@"Def",@"Ghi",@"JK",@"LM", nil]; self->dataArray=array;}
- IOS第二十天——实现一个简单的表
- IOS第二十九天——HTTP下载一个图片
- IOS第二十八天——借助开源力量,试用下别人写的一个KxMenu
- IOS实现一个简单的浏览器
- iOS一个简单聊天工具的实现
- IOS 实现一个简单的计算器
- ios通知的一个简单实现
- iOS开发学习第二十课——类的扩展 / 日期类
- IOS第二十五天——控件之ActionSheet
- IOS第二十七天——把Picker改成老虎机游戏
- iOS 一个简单的实现星级评分的方法
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 在iOS上实现一个简单的日历控件
- iOS实现一个简单的视频播放器
- ios实现一个简单的XMPP即时通讯程序
- C与C++混合编程
- poj 1837 balance
- 标准C++中的string类的用法总结
- Vijos1437 简单的口令 【最小表示】
- 阿童木 洗洗睡吧
- IOS第二十天——实现一个简单的表
- 如何获得Android素材图片
- 相见恨晚的68句话,每一句都可以品半辈子!
- Java基础之面向对象(封装、继承、多态)
- 字符串和时间转换time_t
- 更改MFC对话框默认的窗口类名
- mysql多关键字多字段模糊查询
- 百度、谷歌的认识
- TCP流量控制:滑动窗口协议