`
siruoxian
  • 浏览: 237984 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    UITableView 详细讲解.

    UITableView 详细讲解

    iphone应用开发:UITableView的详细讲解(一)

    在iOS应用开发中,UITableView是不可或缺的组件,用于展示列表数据。本教程将深入探讨UITableView的使用,特别是针对iPhone应用开发。在第一部分中,我们将着重理解UITableView的基本概念,设置数据源,创建自定义...

    uitableview显示两列数据

    以下将详细讲解如何实现这个功能。 首先,我们需要创建自定义的`UITableViewCell`子类,以便为两列数据提供足够的空间。在`Interface Builder`或者通过代码创建一个新的`.xib`文件,并在其中设计单元格布局,包含两...

    仿IOS式ListVIew UITableView

    以下我们将深入探讨如何在Android中实现这样的功能,并围绕UITableView标签进行详细的讲解。 UITableView在iOS中是用于显示一列可滚动数据的标准控件,它能够动态加载数据,以优化内存使用并提高性能。在Android中...

    UITableView 快捷菜单的使用Demo

    本教程将深入讲解如何在UITableView中实现快捷菜单的使用,特别是涉及到Cell的粘贴功能。这将帮助开发者提高用户界面的交互性和功能多样性。 首先,让我们理解UITableView的基本工作原理。UITableView是由多个...

    UItableView操作大全

    本篇文章将深入探讨UITableView的"增删查改"四大核心操作,并结合Navdemo这个示例项目进行讲解。 首先,我们来看"增"。在UITableView中添加新数据通常涉及以下步骤: 1. **增加数据源**:当你有新的数据需要添加时...

    IOS 本地图片 uitableview 瀑布流 沙盒功能

    下面将分别详细讲解这三个核心知识点。 首先,我们来看**本地图片的加载**。在iOS应用中,本地图片通常存储在应用的资源文件中或者沙盒的Documents或Library目录下。加载本地图片时,我们可以使用`UIImage`类的初始...

    UITableView基本用法大全

    本教程将深入讲解UITableView的基本用法,包括创建、配置、数据源与代理方法、Cell的重用机制以及AutoLayout的应用。 首先,创建UITableView非常简单,既可以通过代码创建,也可以在Storyboard中拖拽添加。在代码中...

    UITableView 下拉刷新EGOTableViewPullRefresh

    下面将详细讲解如何使用`EGOTableViewPullRefresh`库来为`UITableView`添加下拉刷新功能。 首先,`EGOTableViewPullRefresh`库是由Egor Ogladov创建的,它提供了一个简单的方法来添加自定义的下拉刷新视图到`...

    UITableView单组数据应用

    本示例将深入讲解UITableView的单组数据应用,包括如何设置cell的列高、实现多行选中与删除、局部刷新以及反选功能。以下是对这些知识点的详细说明: 1. **设置cell列高**: 在UITableView中,每个cell的高度可以...

    uiscrollview uitableview上拉刷新

    本教程将详细讲解如何在 `UIScrollView`(尤其是 `UITableView`)中实现上拉和下拉刷新功能。 一、`UIScrollView` 基础 `UIScrollView` 是一个可以容纳大型内容并允许用户滚动查看的视图。它通过内容大小(content...

    ios-swift-使用表格组件(UITableView)实现分组列表.zip

    本教程将详细讲解如何利用Swift和UITableView来创建一个具有分组功能的列表。 首先,我们需要了解UITableView的基本概念。UITableView是一个可以滚动的视图,它能显示一行行的数据,这些数据由UITableViewCell表示...

    UITableView表格的修改

    本教程将深入讲解如何对UITableView进行修改,包括增、删、移等操作,以及如何通过代理模式实现这些功能。下面我们将详细讨论相关知识点。 1. UITableView的基本结构: UITableView由多个单元格(UITableViewCell...

    UITableView编辑-右划插入和左划删除、置顶、标记.zip

    本教程将深入讲解如何使用Swift实现UITableView的编辑功能,包括右划插入、左划删除、置顶以及标记。 首先,让我们了解UITableView的基本编辑模式。Swift中的UITableView支持两种编辑模式:普通编辑模式(normal ...

    uitableview使用

    这个教程将深入讲解`UITableView`的基本方法、代理方法、编辑和移动等功能的使用。 首先,我们来了解`UITableView`的基本结构。一个`UITableView`由多个单元格(UITableViewCell)组成,每个单元格可以包含不同的...

    ios-UITableView 多选.zip

    以下是对这个知识点的详细讲解: 1. UITableView基本概念: - UITableView是一种控件,用于显示一系列行,通常用于数据列表展示。 - 每一行称为一个Cell,可以自定义样式,包含多个单元格视图。 - UITableView...

    两个UITableView关联

    本教程将详细讲解如何在iOS应用中实现两个或多个`UITableView`的关联。 首先,理解基本概念。`UITableView` 是一个显示数据列表的控件,通常与`dataSource`(数据源)和`delegate`(代理)配合使用。`dataSource`...

    UITableView的使用

    在本教程中,我们将详细介绍如何使用UITableView及其代理方法,并着重讲解如何通过继承UITableViewCell以及重写父类方法来实现label和cell的自适应高度。此外,还会探讨TableView的编辑功能。 首先,UITableView的...

    UITableView-Swift

    本项目"UITableView-Swift"专注于讲解如何使用Swift语言有效地创建和管理`UITableView`。以下是关于`UITableView`在Swift中使用的详细知识点: 1. **初始化UITableView** - `UITableView`可以通过代码或Interface ...

    UITableview的cell自适应高度

    本篇将详细讲解如何通过纯代码实现UITableView的Cell自适应高度。 方法一:使用自动布局(Auto Layout) 1. 首先,确保你的Cell中所有的子视图都已经设置了约束。每个子视图应该有四个约束(上、下、左、右),...

Global site tag (gtag.js) - Google Analytics