UITableView 常用的委托方法:

原创 2016年06月02日 11:18:49

1 分区的个数


- (NSInteger)numberOfSectionsInTableView:(UITableView *) tableView
{
    return  数据分组的个数; 
    //例 return 2:

}
 

2 屏幕右边的标题索引


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
    NSArray *temp=[NSArray arrayWithObjects:@"xigua",@"tudou",nil];
    return temp;
}
 

3 点击单元格出发的事件


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
     //点击的事件

}
 

4 点击删除按钮时,能够删除,指定位置的单元格,和对应的数组中的内容


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{


}

 

5 每个分区的行数


- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section{

}
 

6 每行 的缩进


- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{

}

 

7 构建单元格


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
 static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
                             SimpleTableIdentifier];
    if (cell == nil) {      
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier: SimpleTableIdentifier] autorelease];

        cell.imageView.image=[UIImage imageNamed:@"flake"];
        cell.backgroundView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"star.png"]];
}
 

8 设置分区的 每一个标题


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

    if (section==0) {
        return @"luobo";
    }
    return @"tudou";

}
 

9 为每个分区设置一个按钮(视图)


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    UIButton *sectionbutton=[UIButton buttonWithType:UIButtonTypeRoundedRect];

    sectionbutton.frame=CGRectMake(0, 0, 320, 30);

    if (section==0) {

        [sectionbutton setTitle:@"xigua" forState:UIControlStateNormal];

    }

    if(section==1)
    {
        [sectionbutton setTitle:@"tudou" forState:UIControlStateNormal];

    }

    sectionbutton.tag=section;

    [sectionbutton addTarget:self action:@selector(titlebutton:) forControlEvents:UIControlEventTouchUpInside];

    return sectionbutton;


}
 

10 会在点击cell右边的指示button时,自动调用本方法。


- (void)tableView:(UITableView *)tableView 
accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
    //是为了防止本界面频繁的进入下一个界面时,频繁的创建下一个界面的对象。
    //重复使用childController。
    //因为是数组保存了控制器对象,所控制器的对象始终为1,不能释放,
    //导致下一个控制器对象调用的控制器对象创建以后就不会消失。
    if (childController == nil)
        childController = [[DisclosureDetailController alloc] 
                           initWithNibName:@"DisclosureDetail" bundle:nil];

    NSLog(@"111111");

   // childController.title = @"Disclosure Button Pressed";

    NSUInteger row = [indexPath row];

    NSString *selectedMovie = [list objectAtIndex:row];
    NSString *detailMessage  = [[NSString alloc] 
                                initWithFormat:@"You pressed the disclosure button for %@.", 
                                selectedMovie];
    childController.message = detailMessage;//因为message属性是retain
    [detailMessage release];
    //不能用下面的传值方式,不安全,因为在没有xib的情况下,不能保证label不为空
    //childController.label.text=detailMessage;
    childController.title = selectedMovie;


    [self.navigationController pushViewController:childController animated:YES];
}

11 不要该方法默认为删除风格


- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
           editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleNone;//没有风格 
      //这是一个枚举 还有其它风格
}

12 此方法可以没有,默认返回yes,改为no将无法移动


- (BOOL)tableView:(UITableView *)tableView 
canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
    return YES;
}

13表格的移动此方法可以实现在拖动单元格后,更改数据元的方法实现


- (void)tableView:(UITableView *)tableView 
moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
      toIndexPath:(NSIndexPath *)toIndexPath {
    NSUInteger fromRow = [fromIndexPath row];
    NSUInteger toRow = [toIndexPath row];

    id object = [[list objectAtIndex:fromRow] retain];//
    [list removeObjectAtIndex:fromRow];//remove 只是让其引用计数减一
    [list insertObject:object atIndex:toRow];
    [object release];
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

UI -- UITableView 数据源协议与委托协议

与UIPickerView等复杂控件类似,表视图在开发过程中也会使用委托协议和数据源协议,而表视图UITableView的数据源协议是UITableViewDataSource,委托协议是UITabl...
  • honey199396
  • honey199396
  • 2016年07月13日 11:22
  • 541

UITableView SDK委托方法详解

本文全面跟大家分享一下UITableView的各个代理方法的用法--UITableViewDataSource与UITableViewDelegate。 主要是根据SDK里面的介绍,再加上Atany自...
  • yang8456211
  • yang8456211
  • 2013年10月21日 12:58
  • 2442

iOS 最全的UITableView的各种使用方法

UITableView: 1、重用代理 @interface ViewController : UIViewController 2、定义 _tableView = [[UITableVi...
  • QueenlySun
  • QueenlySun
  • 2016年11月02日 17:08
  • 2775

IOS学习 UITableView 委托方法

#import #define VIEW_WIDTH self.view.bounds.size.width #define VIEW_HEIGHT self.view.bounds.s...
  • ridxmc
  • ridxmc
  • 2016年03月09日 23:13
  • 308

UITableView SDK委托方法详解

今天跟大家分享一下UITableView的各个代理方法的用法,主要是根据SDK里面的介绍,再加上Atany自己的分析与测试,总结成此文。如果有疑问的话,希望大家留言告诉我~ 本文主要...
  • u010708434
  • u010708434
  • 2014年08月18日 16:10
  • 328

方法绑定到委托

上篇,我们讨论了委托最核心的原理——将方法作为方法的参数,这一篇我们聊聊委托还要哪些用法我们继续用上次打招呼的例子来分析委托的其他用法,下边是上一篇的DEMOnamespace 委托DEMO { ...
  • cd18333612683
  • cd18333612683
  • 2016年12月30日 19:55
  • 346

UITableView SDK委托方法详解

UITableView SDK委托方法详解   今天跟大家分享一下UITableView的各个代理方法的用法,主要是根据SDK里面的介绍,再加上自己的分析与测试,总结成此文。如果有疑问的话,希望大家...
  • gyz413977349
  • gyz413977349
  • 2015年03月31日 10:17
  • 768

C# 委托代理静态的方法

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Con...
  • cvMat
  • cvMat
  • 2016年12月18日 09:52
  • 878

初步理解委托、事件、匿名方法和Lambda

最经在学习LinqtoSql,然后扯到Lambda表达式,然后扯到匿名方法,然后扯到委托,最后扯到事件处理。。。后来发现对委托这个概念和事件处理这个过程理解得不是很清晰,遂得一下学习笔记。那里说得不对...
  • codeeer
  • codeeer
  • 2013年04月26日 15:32
  • 3563

委托的使用与原理简析

委托的使用与原理简析:委托为什么本质上是数据类型?委托变量直接执行了方法背后原理是什么?多播委托是怎么实现的?...
  • shuaihj
  • shuaihj
  • 2016年11月06日 19:03
  • 1700
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITableView 常用的委托方法:
举报原因:
原因补充:

(最多只允许输入30个字)