当前位置:编程学习 > wap >>

xcode 4.3.2 storyboard绘制UITableView为理解storyboard使用和tableview有用

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定义完整如下:

@inte易做图ce 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的专栏

补充:移动开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,