iPhone Table View 教程(2) 创建一个简单表格

Posted by Elton's Blog on July 5, 2009

上一节我们介绍了iPhone的table view,这节我们先做一个简单的表格例子。

在Xcode中新建一个view based项目,命名为SimpleTable。

[caption id=”attachment_176” align=”alignnone” width=”487” caption=”新建xcode项目”]新建xcode项目[/caption]

在SimpleTableViewController.h输入以下代码:

#import

@interface SimpleTableViewController : UIViewController  {
	IBOutlet UITableView *tblSimpleTable;
	NSArray *arryData;
}
@end

定义一个table view IBOutlet变量和一个数组。

打开SimpleTableViewController.xib文件,进入interface builder。 从Library拖入一个table view控件到主窗口中。

选择File’s Owner

[caption id=”attachment_178” align=”alignnone” width=”560” caption=”File‘s Owner”]File‘s Owner[/caption]

按cmd + 2 打开 ‘Connections Inspector’

[caption id=”attachment_181” align=”alignnone” width=”440” caption=”关联表格”]关联表格[/caption]

点击tblSimpleTable边上的小圆圈,拖拽到主屏幕上的table view上,将IBOutlet变量跟Interface Builder中的表格table view关联起来。

在选择主屏幕中的table view,拖拽dataSource和delegate两个变量拖拽到File’s Owner上,指定File‘s Owner所对应的对象(即SimpleTableViewController)为tableview的datasource和delegate。

[caption id=”attachment_182” align=”alignnone” width=”452” caption=”设置data source和delegate”]设置data source和delegate[/caption]

打开SimpleTableViewController.m,编辑其中内容为:

#import "SimpleTableViewController.h"

@implementation SimpleTableViewController

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
	arryData = [[NSArray alloc] initWithObjects:@"iPhone",@"Android",@"Plam Pre",@"Windows Mobile",nil];
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

	// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}

- (void)dealloc {
	[arryData release];
    [super dealloc];
}

#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [arryData count];
}

// 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] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    // Set up the cell...
	cell.textLabel.text = [arryData objectAtIndex:indexPath.row];
    return cell;
}

@end

运行可以得到:

[caption id=”attachment_186” align=”alignnone” width=”414” caption=”运行结果”]运行结果[/caption]