xcode 4.3.2 storyboard绘制UITableView为理解storyboard使用
1.Xcode新建single view application
2.删除storyboard里的默认viewcontroller
3.拖入table view controller,拖入一个table view cell
[选中刚刚拖入的table view cell
3.1 修改Table View Cell属性中的Identifier为:myCell,此后此标志需要在myTableViewController.m中用于程序控制,来引用本单元格,并设置数据其中
3.2 目前table view的Content参数还是缺省的Dynamic Prototypes,设置了static cells会出错,待考究,有知道的朋友请留言告知下谢谢,我也是刚玩iOS开发_ _
可以设置table view的Style参数为Grouped
]
4.菜单:editor->embed in->navigation controller
*5 此步骤也可以不做:拖入tab bar controller到storyboard
*5.1 删除tab bar controller下的两个view controller
*5.2 按住cntrol键,从tab bar controller拉线到navigation controller,弹出对话框中选中“Relationship->viewControllers”
*5.3 选中tab bar controller,设置属性:选中is Initial View Controller,让tab bar controller成为初始化的view controller
6 新建File,Cocoa Touch->Objective-C class
设置Class:myTableViewController
设置Subclass of: UITableViewController
//myTableViewController继承UITableViewController
7 编辑myTableViewController.h
将类:myTableViewController定义完整如下:
@interface myTableViewController : UITableViewController
{
NSMutableArray *lists; //新增,用于定义表格中显示的内容
}
@property(nonatomic,strong) NSMutableArray *lists; //新增
8 修改myTableViewController.m
@implementation myTableViewController
@synthesize lists; //新增加
- (void)viewDidLoad
{
[super viewDidLoad];
//下面新增:定义lists数据
self.title = @"Lists";
lists = [[NSMutableArray alloc] initWithCapacity:20];
[lists addObject:@"test1"];
[lists addObject:@"test2"];
[lists addObject:@"test3"];
[lists addObject:@"test4"];
[lists addObject:@"test5"];
}
//下面三个函数新建myTableViewControll文件后,已经生成
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
//删除此行 #warning警告行
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//删除此行#warning Incomplete method implementation.
// Return the number of rows in the section.
return [self.lists count];
}
//下面这个函数,用于实现表格中数据的显示
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"myCell"; //修改此标志,storyboard中设置此标志,不能写错,否则表格中不会显示lists数据。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
//增加下面的cell配置,让在标志为“myCell"的单元格中显示list数据
NSInteger row = [indexPath row];
cell.textLabel.text = [self.lists objectAtIndex:row];
return cell;
}
另外一种方法,navigation controller后面挂接普通的view controller容器,容器里拖入table view 和table view cell。
这种方法:新建view controller容器对应的controller.h 和.m文件,.h文件中的类需要继承UITableViewController的datasource 和 delegate, 在.m文件中,需要实现第一中方法中的后面三种方法即可。
numberOfSectionsInTableView()
numberOfRowsInSection()
cellForRowAtIndexPath()
摘自 gaoxuefeng的专栏
相关新闻>>
- 发表评论
-
- 最新评论 更多>>