`
119568242
  • 浏览: 431037 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[ios]tableview

    博客分类:
  • ios
 
阅读更多

tableView

 

日期2012-10-23

如果需要通过 界面 获取 当前数据信息的话

则无法使用viewWithTag (因为tag要用于作为作为数据和内容的标记)

比如需要实现cell中有一个 button 根据不同的cell行执行不同的操作。

那么 需要在每次给出cell的术后对button的 tag赋值

如果不能使用viewWithTag 则使用custom一个子类 并ib它的属性到cell 作为操作用。

[其实也不是完全不能使用viewWithTag 比如- -button用正数 其他用负数。。。。但是如果是2个控件要使用呢? 那就变成复杂的数学问题了。。所以还是使用 custom 一个子类吧]

=========================

 

需要实现2个协议

datagate:控制tableView如何显示

DataSource:控制数据如何显示在cell

 

tableViewVC 动态下。

在xcode中storyboard 写的原型cell

会在第一次进入tableCell池中判断是否有cell

如果没有则自创建一个自己 并入池

这是为什么我们可以再代码中 直接通过 

dequeueReusableCellWithIdentifier:@"原型cell的indentifier"

 

tableView的自定义cell

找到两个方法

1.通过xib加载布局 再操作。[更优秀,可重复用]

2.直接在tableViewVC上设置原型cell为Custom,通过属性操作[更简单]

3.直接在tableViewVC上设置原型cell为Custom,通过viewWithTag操作[最简单]

 

1.通过xib加载布局 再操作。

自己写一个xib然后通过来

 

NSArray * array=[[NSBundle mainBundle]loadNibNamed:@"TestCell" owner:self options:nil];

来加载出view数组。再获取出自己的cell;

注意,自己写的cell需要 让他的类别为自己写的TableViewCell的子类。[为了操作tableViewCell的子类]

然后将cell的子类通过IB绑定到这个自己写的TableViewCell的子类。

从array到自己的cell后。通过写好了IB来设置子类内容。

 

2.直接在tableViewVC上设置原型cell为Custom,通过属性操作[更简单]

这个其实是更简单的方法 只是做完第一个才想清楚怎么操作。

设置为custom后我遇到的问题是不知道怎么获取到子类对象[既内容对象]。

其实,和上面方法一样。修改原型的类别为自己写的TableViewCell的子类,并且把子类通过IB绑定到属性上。

通过dequeueReusableCellWithIdentifier:@"原型cell的indentifier"

获取到cell并转型成自己写的TableViewCell的子类。通过属性来操作子类赋值。

 

3.直接在tableViewVC上设置原型cell为Custom,通过viewWithTag操作[更简单]

问题还是在于取到cell后不知道如何获得子view的对象。可以通过[cell viewWithTag:NSInteger tagid]

来获取到 子view对象。

 

 

 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//返回 在indexPath位置的cell
{
//    static NSString *CellIdentifier = @"Cell";
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    
    // Configure the cell...
    
//    //test1
//    LrnCell * cell;
//    if(cell==nil){
//    NSArray * array=[[NSBundle mainBundle]loadNibNamed:@"TestCell" owner:self options:nil];
//     cell =[array objectAtIndex:0];
//    cell.lab1.text=[NSString stringWithFormat:@"%d",indexPath.row*100];
//    cell.lab2.text=[NSString stringWithFormat:@"%d",indexPath.row];
//    self.num+=1;
//    }
    
    //test2
//    
//        static NSString *CellIdentifier = @"test";
//        LrnCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
//    cell.lab1.text=@"test1";
//    cell.lab2.text=[NSString stringWithFormat:@"%d",indexPath.row];
   
    //test3
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"test"];

        if (cell == nil) {
            cell = [tableView dequeueReusableCellWithIdentifier:@"test"];
        }
//    NSInteger x=1;
    UILabel *test=(UILabel *)[cell viewWithTag:1];
    test.text=@"xinde";
    UILabel *test2=(UILabel *)[cell viewWithTag:2];
    test2.text=@"囧2";
    
    
    return cell;
}
分享到:
评论

相关推荐

    iOS tableview 多级展开,折叠,防qq效果

    "iOS tableview 多级展开,折叠,防qq效果"指的是在UITableView中实现类似QQ聊天界面那样的树形结构,用户可以点击单元格展开或折叠其子节点,同时保持界面流畅且美观。 首先,我们需要了解UITableView的基本工作...

    IOS TableView Lazy Loading Demo

    这个“IOS TableView Lazy Loading Demo”就是演示了如何将UITableView与懒加载技术相结合,以优化用户体验。 首先,让我们深入理解UITableView。UITableView的主要功能是展示一个可滚动的数据集合,每个单元格...

    IOS tableView(一张图片标题详细说明)

    本篇文章将深入探讨如何在iOS项目中使用UITableView,结合“IOS tableView(一张图片标题详细说明)”这个标题,我们将重点讲解如何创建并定制一个带有图片和标题的tableView。 首先,我们需要创建一个UITableView,...

    iOS TableView下拉图片放大

    "iOS TableView下拉图片放大"这一功能通常是为Header View设计的,当用户下拉表格时,位于顶部的图片会按比例放大,给予用户一个视觉反馈,增强交互体验。本文将详细介绍如何实现这个效果。 首先,我们需要了解...

    iOS tableview_demo_mvc

    这个名为“iOS tableview_demo_mvc”的项目,显然是一份使用Model-View-Controller(MVC)设计模式编写的TableView示例代码,旨在帮助新手理解并实践iOS中的 MVC 模式。下面将详细介绍 MVC 模式以及在 iOS 开发中...

    ios tableView 利用run Loop

    "ios tableView 利用run Loop"就是一种实现懒加载的方法。本文将详细解释如何利用RunLoop来优化UITableView的性能。 RunLoop是iOS中的一个核心概念,它负责处理应用程序的事件循环,确保程序在没有用户交互时仍能...

    IOS TableView点击更多,展开

    以下是对“IOS TableView点击更多,展开”这一主题的详细解释。 1. **扩展TableView行的概念** - 在UITableView中,每个可见的单元格称为一个Cell。当用户点击“更多”按钮时,通常会触发某个Cell的扩展,使其显示...

    ios tableView叠加

    在iOS开发中,"ios tableView叠加"是一种独特的布局技巧,常用于实现复杂界面设计,比如在某些情况下,我们可能需要在一个TableView(表格视图)中嵌套另一个TableView,以达到更丰富的显示效果。这种技术主要涉及到...

    iOS TableView 添加手势方法

    在iOS开发中,TableView是一种常见的用户界面元素,用于展示列表数据。在某些场景下,开发者可能希望添加手势识别功能来增强用户体验,例如在TableView的空白区域点击时隐藏键盘。本篇文章将详细讲解如何在iOS的...

    iOS tableview里面嵌套tableview,自适应高度

    swift ,使用autolayout + storyboard 最外层tableview列表,cell里面嵌套了tableview,自适应内容,cell里的tableview不可滑动,内容全部显示,且文字分行显示,不用设置cell的高度直接可以自适应内容

    iOS tableview 索引

    当我们谈论“iOS tableView 索引”时,通常指的是为tableView添加一个侧边索引,以便用户能快速浏览和跳转到列表中的特定部分。 侧边索引,也称为section index或快速索引,通常显示在tableView的右侧,以字母顺序...

    ios tableview 源码例子(31个)

    在iOS开发中,UITableView是用于展示数据集合的重要控件,常用于新闻列表、联系人、设置界面等场景。本资源提供了31个关于UITableView的源码示例,涵盖了各种常见和复杂的实现方式,旨在帮助开发者深入理解并熟练...

    ios tableview 异步 加载图片

    在iOS开发中,UITableView是展示数据的常用组件,特别是在处理大量数据时,如新闻列表、产品目录等。然而,直接在TableView中加载网络图片会导致应用性能下降,因为这会阻塞主线程,使得用户界面变得卡顿。为了解决...

    iOS tableview 展开与收回

    "iOS tableview 展开与收回"是UITableView的一种高级用法,涉及到自定义单元格(cells)以及动态调整表格内容的高度。在这个主题中,我们将深入探讨如何实现这个功能,包括点击单元格展开子列表、单元格的动画效果、...

    IOS Tableview远程加载数据并显示

    本示例"IOS Tableview远程加载数据并显示"旨在教你如何从远程服务器获取数据,并将其动态地加载到UITableView中,为用户提供流畅的滚动体验。这个"tableviewdemo"压缩包文件很可能是包含了实现这一功能的代码示例。 ...

    ioS TableView下拉图片放大上拉图片高度缩小TableViewFrame动态变化

    在标题“iOS TableView下拉图片放大上拉图片高度缩小TableViewFrame动态变化”中,提到的是一个特定的交互效果,即当用户滚动TableView时,顶部图片的行为会有所改变:下拉时图片放大,上拉时图片高度缩小,同时整个...

    iOS tableView点击更多 搜索栏

    总的来说,实现"iOS tableView点击更多 搜索栏"的功能涉及到UITableView的高级用法,包括自定义单元格行为、搜索过滤和用户交互处理。这要求开发者对iOS SDK有深入的理解,同时具备良好的编程实践。通过这个功能的...

    iOS TableView demo下载

    这个“iOS TableView demo”提供了一系列关于TableView的实例代码,帮助开发者了解和掌握如何在iOS应用中有效地使用TableView进行数据展示和交互。 首先,`TableViewAuto`可能是指自动布局和尺寸调整的功能。在iOS...

    iOS tableview头部拉伸效果

    首先,让我们关注iOS tableview头部拉伸效果。这个效果通常通过自定义header view来实现。你可以创建一个UIView作为header,并设置其约束,使其在初始状态下具有合适的高度。然后,你需要监听UITableView的...

    Ios tableview下拉菜单 展开收起

    在iOS开发中,UITableView是一种常用的数据展示控件,它可以用于创建列表或表格视图。而“下拉菜单”通常指的是在TableView中实现的一种交互效果,即点击某一行时,该行下方会展开一个子菜单,点击其他地方或者再次...

Global site tag (gtag.js) - Google Analytics