iOS OC TableView的使用(1)- 基本使用方法
2018-09-03 本文已影响508人
CSDN_georgeChen
写在前面
-
本文使用的IDE为Xcode9.4.1
-
目的是展示控件TableView的基本使用方法
-
使用的语言为Objective-C
-
实现使用TableView控件有两种方法:
-
1、直接使用Xcode已经提供的TableView Controller。
-
2、另一种是自己创建ViewController,在其上添加tableView并设置代理。
-
实现
由于第二种方法更为自由,也体现了第一种的实现原理。所以在此只介绍第二种。
1、打开一个项目,打开.storyboard文件,在Xcode的控件栏找到TableView控件。将它拖动到一个ViewController上。
tableview1.png2、将TableView的代理设置为当前ViewController:在tableView上按住control键,拉动鼠标到ViewController。选择dataSource和delegate。
tableView代理.png3、找到ViewController代码。在.h文件加入代理协议<UITableViewDataSource,UITableViewDelegate> 以及添加两个成员变量。如下:
@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
{
IBOutlet UITableView *tableview;
NSArray *data;//数组的每一个元素对应tableView相应的一格
}
@end
4、在当前viewController的.m文件中加入TableView的代理方法。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSArray *provinces=[[NSArray alloc] initWithObjects:@"湖南",@"湖北",@"山东",@"山西",@"河南",@"河北",@"广东",@"广西",@"黑龙江",@"内蒙古",@"新疆",@"西藏",@"台湾",@"香港",@"澳门", nil];
self.data = provinces;
tableview.rowHeight = 30;
//行高
}
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.data count];
}
-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellTableIndentifier = @"CellTableIdentifier";
//单元格ID
//重用单元格
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellTableIndentifier];
//初始化单元格
if(cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellTableIndentifier];
//自带有两种基础的tableView样式,UITableViewCellStyleValue1、2. 后面的文章会讲解自定义样式
}
UIImage *img = [UIImage imageNamed:@"tachi.png"];
cell.imageView.image = img;
//添加图片
cell.textLabel.text = [self.data objectAtIndex:indexPath.row];
cell.detailTextLabel.text = @"省份";
//添加右侧注释
return cell;
}
-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//获取storyboard
UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
//根据storyboard创建控制对象
Detail * celldetail = [storyboard instantiateViewControllerWithIdentifier:@"celldetail"];
[celldetail viewDidLoad];
[self.navigationController pushViewController:celldetail animated:YES];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
5、 这样tableView基本显示就完成了。
tableView展示.png