1. 打开xcode,依次点击菜单栏的File -> New Project -> Application -> View-based Application
2. Choose -> 输入project名称 SimpleTableView -> Save
3. 双击Resources组(这里不叫文件夹,叫Group组)展开该组。
4. 双击 SimpleTableViewViewController.xib,按下shift + command + L快捷键,显示出来了Library面板。
5. 当按下了shift + command + L时,焦点会在Library面板底部的搜索框内,直接输入Table,
把Table View拖到刚才打开的View窗口中,然后按下command + 2快捷键,
把 dataSource、delegate拖到xib窗口中的 File's Owner中,按下command + S保存。
6. 然后双击Classes组,单击 SimpleTableViewViewController.h 文件,
@interface SimpleTableViewViewController : UIViewController {
把上面这行改成下面这行
@interface SimpleTableViewViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> {
然后加入成员变量m_data,是TableView待会要显示的数据。
代码如下:
@interface SimpleTableViewViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> {
NSArray *m_data;
}
@property (nonatomic, retain) NSArray *m_data;
@end
7. 单击 SimpleTableViewViewController.m 文件
在 @implementation SimpleTableViewViewController 下面加如下一行代码
@synthesize m_data;
8. 把 SimpleTableViewViewController.m 文件中的 viewDidLoad 函数的注释去掉并加入以下代码
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
NSArray *arr = [[NSArray alloc] initWithObjects: @"桔子", @"雪梨", @"毛桃", @"李子", @"荔枝", @"柚子", @"芒果", @"菠萝", @"草莓", @"西瓜", nil];
self.m_data = arr;
[arr release];
[super viewDidLoad];
}
9. 最后在 SimpleTableViewViewController.m 文件最下面 @end 之前,加入以下代码
#pragma mark -
#pragma mark Table View Data Source Methods
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [m_data count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *TableViewDynamicLoadIdentifier = @"TableViewDynamicLoadIdentifier";
UITableViewCell *pCell = [tableView dequeueReusableCellWithIdentifier:TableViewDynamicLoadIdentifier];
if (pCell == nil)
{
pCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableViewDynamicLoadIdentifier] autorelease];
}
NSInteger nRow = [indexPath row];
pCell.textLabel.text = [m_data objectAtIndex:nRow];
return pCell;
}
10. 编译并运行后的效果如下图如示: