• 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];
  • 相关阅读:
    [NOI2008] [bzoj1061] 志愿者招募
    [bzoj1070] 修车
    [群内模拟4.8] 定点爆破 后宫着♂火 签到题
    初识费用流 模板(spfa+slf优化) 餐巾计划问题
    Chromium的无锁线程模型C++代码示例
    JavaScript的Date类的函数特殊处理导致的问题
    ssh免密码快速登录配置
    container-with-most-water(最大蓄水问题)
    死锁
    美团2018春招编程题第一题 字符串距离 O(n)解法
  • 原文地址:https://www.cnblogs.com/lm3515/p/1908936.html
Copyright © 2020-2023  润新知