zoukankan      html  css  js  c++  java
  • ios开发:UITableView详解

    -、建立 UITableView

    DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];
    [DataTable setDelegate:self];
    [DataTable setDataSource:self];
    [self.view addSubview:DataTable];
    [DataTable release];

    二、UITableView各Method说明

    //Section总数
    - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
    return TitleData;
    }

    // Section Titles
    //每个section显示的标题
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return @"";
    }

    //指定有多少个分区(Section),默认为1
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 4;
    }

    //指定每个分区中有多少行,默认为1
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    }

    //绘制Cell
    -(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=image;//未选cell时的图片
    cell.imageView.highlightedImage=highlightImage;//选中cell后的图片
    cell.text=//.....
    return cell;
    }

    //行缩进
    -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSUInteger row = [indexPath row];
    return row;
    }

    //改变行的高度
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    return 40;
    }

    //定位
    [TopicsTable setContentOffset:CGPointMake(0, promiseNum * 44 + Chapter * 20)];

    //返回当前所选cell
    NSIndexPath *ip = [NSIndexPath indexPathForRow:row inSection:section];
    [TopicsTable selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionNone];

    [tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];

    //选中Cell响应事件
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失
    }

    //判断选中的行(阻止选中第一行)
    -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    NSUInteger row = [indexPath row];
    if (row == 0)
    return nil;

    return indexPath;
    }

    //划动cell是否出现del按钮
    - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    }

    //编辑状态
    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
    forRowAtIndexPath:(NSIndexPath *)indexPath
    {

    [topicsTable setContentSize:CGSizeMake(0,controller.promiseNum * 44)];
    //右侧添加一个索引表
    - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
    }
    //返回Section标题内容
    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    }
    //自定义划动时del按钮内容
    - (NSString *)tableView:(UITableView *)tableView
    titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
    //跳到指的row or section
    [tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];
    三、在UITableViewCell上建立UILable多行显示
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    UILabel *Datalabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 320, 44)];
    [Datalabel setTag:100];
    Datalabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [cell.contentView addSubview:Datalabel];
    [Datalabel release];

    UILabel *Datalabel = (UILabel *)[cell.contentView viewWithTag:100];
    [Datalabel setFont:[UIFont boldSystemFontOfSize:18]];
    Datalabel.text = [data.DataArray objectAtIndex:indexPath.row];
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
    }
    //选中cell时的颜色
    typedef enum {
    UITableViewCellSelectionStyleNone,
    UITableViewCellSelectionStyleBlue,
    UITableViewCellSelectionStyleGray
    } UITableViewCellSelectionStyle 
    //cell右边按钮格式
    typedef enum {
    UITableViewCellAccessoryNone, // don't show any accessory view
    UITableViewCellAccessoryDisclosureIndicator, // regular chevron. doesn't track
    UITableViewCellAccessoryDetailDisclosureButton, // blue button w/ chevron. tracks
    UITableViewCellAccessoryCheckmark // checkmark. doesn't track
    } UITableViewCellAccessoryType
    //是否加换行线
    typedef enum {
    UITableViewCellSeparatorStyleNone,
    UITableViewCellSeparatorStyleSingleLine
    } UITableViewCellSeparatorStyle//改变换行线颜色
    tableView.separatorColor = [UIColor blueColor];

  • 相关阅读:
    myeclipse安装
    win下Velocity安装和试用
    win下Java环境安装
    零基础编程指南(By Turtle)
    快速将某个文件夹下的所有文件中的匹配数据替换
    补丁数组(增删改查都较快的数组)
    addView的误区
    NOIP普及组:买铅笔
    由抽奖软件想到的随机算法总结
    Codeforces Round #220 (Div. 2) 解题报告
  • 原文地址:https://www.cnblogs.com/superchao8/p/2695560.html
Copyright © 2011-2022 走看看