UITableViewController重要配置方法和Delegate[ZT]

本文深入探讨了iOS开发中UITableViewDelegate的重要方法,包括获取章节数量、行数量、编辑、删除、插入行等功能,帮助开发者创建自定义表格界面。

转载:UITableViewController重要配置方法和Delegate

 UITableViewController 列表在iPhone开发中起着决定性的重要作用,但是UITableViewController并不是那么简单使用的,以下就是其中的重要方法和Delegate:

// 这个delegate会获取有多少个"章节"
-  (NSInteger)numberOfSectionsInTableView:(UITableView  * )tableView {
    
return   1 // 这里返回的是章节(section)的个数
// 如果数据源是一个复杂array或dictionary,则可以返回
     return  [NSArray count];  作为章节的个数
}
 
 
// 这个delegate会获取章节内有多少行
-  (NSInteger)tableView:(UITableView  * )tableView numberOfRowsInSection:(NSInteger)section {
    
return   0 // 这个部分是必须要改的,否则0行的话,就是一个空表了
// 如果数据源是一个复杂array或dictionary, 可以使用嵌套的查询来返回这个个数了
// 比如:
     return  [[NSArray objectAtIndex:section]     // section为整数,所以如果使用NSDictionary,
                                                                   
// 记得使用辅助方法来计算其索引的key,或嵌套查询 
                                        count];    // 因为返回的依旧是一个array或dictionary对象,所以我们获取它的大小count
}
 
 
 
//  这里编辑每个栏格的外观
-  (UITableViewCell  * )tableView:(UITableView  * )tableView 
      cellForRowAtIndexPath:(NSIndexPath 
* )indexPath {
 
    
static  NSString  * CellIdentifier  =   @" Cell " ;
 
    UITableViewCell 
* cell  =  [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
if  (cell  ==  nil) {
        cell 
=  [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                reuseIdentifier:CellIdentifier] autorelease];
    }
 
    
//  一般我们就可以在这开始设置这个cell了,比如设置文字等:
    cell.textField.text  =  [NSArray objectAtIndex:indexPath.row]; 
        
// 假设这个NSArray就是本section的数据了,否则需要嵌套来查询section的信息,如前一个delegate
 
    
return  cell;
}
 
 
 
// 当栏格被点击后需要触发的事件
-  ( void )tableView:(UITableView  * )tableView didSelectRowAtIndexPath:(NSIndexPath  * )indexPath {
    AnotherViewController 
* anotherViewController  =  [[AnotherViewController alloc]
                                                                         initWithNibName:
@" AnotherView "  bundle:nil];
        
//  建立并使用本地导航管理推入视图控制器是最普遍的方法
    [self.navigationController pushViewController:anotherViewController];
    [anotherViewController release];
}
 
 
 
//  该delegate是可选的,对那些可以被编辑的对象返回YES
-  (BOOL)tableView:(UITableView  * )tableView canEditRowAtIndexPath:(NSIndexPath  * )indexPath {
    
//  Return NO if you do not want the specified item to be editable.
     return  YES;
}
 
 
 
//  对特定编辑风格进行操作
-  ( void )tableView:(UITableView  * )tableView 
        commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
        forRowAtIndexPath:(NSIndexPath 
* )indexPath 
{
// 以下是apple的缺省实例
     if  (editingStyle  ==  UITableViewCellEditingStyleDelete) {
        
//  如果是要删除那行栏格,那么就去删除数据源中的对象
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
    }
    
else   if  (editingStyle  ==  UITableViewCellEditingStyleInsert) {
        
//  如果是要添加栏格,那么就应该将要添加的内容添加到数据源中
    }
}
 
 
 
//  可选delegate,对那些被移动栏格作特定操作
-  ( void )tableView:(UITableView  * )tableView moveRowAtIndexPath:(NSIndexPath  * )fromIndexPath 
        toIndexPath:(NSIndexPath 
* )toIndexPath {
}
 
 
 
//  对那些可以移动的行返回YES
-  (BOOL)tableView:(UITableView  * )tableView canMoveRowAtIndexPath:(NSIndexPath  * )indexPath {
    
//  如果不像让栏格移动,就返回NO
     return  YES;
}

 

 以上就是所有重要的delegate方法,只要数量使用这些方法,我们就能创建和自定义自己想要的iPhone表格。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值