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];

  • 相关阅读:
    搭建springCloud网关zuul
    springboot添加https
    SpringBoot上传文件,经过spingCloud-Zuul,中文文件名乱码解决办法
    springboot mongodb jpa常用方法整理
    springboot拦截中自动注入的组件为null问题解决方法
    springboot JPA mysql
    转载Spring Data JPA 指南——整理自官方参考文档
    springboot带有进度条的上传
    HTTP请求示例
    http的N种请求
  • 原文地址:https://www.cnblogs.com/superchao8/p/2695560.html
Copyright © 2011-2022 走看看