Part1 —— 设置行样式
1、设置UITableViewCell的四种样式 UITableViewCell Style | Subtitle | Value1 | Value2
2、添加辅助图标,实现代理方法
3、完成一个分组的表视图
4、设置单元格的背景颜色和选中颜色
Part2 —— 单元格高度自适应 + 表视图的单选
步骤:
1、新建Root05ViewController,继承UIViewController, 实现UITableViewDatasource和UITableViewDelegate协议, 添加_tableView (UITableView) 和 _dataArray (NSArray)两个属性,override协议UITableViewDatasource的三个基本方法,覆盖loadView和 dealloc两个方法。
@interface Root05ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> { @private UITableView *_tableView; NSArray *_dataArray; } @end
- (void)loadView { UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; self.view = view; [view release]; _dataArray = [@[@"新闻中心 > 国内新闻 > 正文",@"XXX收独龙族乡亲来信 祝贺独龙江隧道将贯通", @"新华网北京1月3日电 2014年元旦前夕,云南省贡山独龙族怒族自治县干部群众致信XXX,汇报了当地经济社会发展和人民生活改善情况,重点报告了多年期盼的高黎贡山独龙江公路隧道即将贯通的喜讯。收到来信后,XXX立即作出重要批示。", @"XXX指出:获悉高黎贡山独龙江公路隧道即将贯通,十分高兴,谨向独龙族的乡亲们表示祝贺!独龙族群众居住生活条件比较艰苦,我一直惦念着你们的生产生活情况。希望你们在地方党委和政府的领导下,在社会各界帮助下,以积极向上的心态迎战各种困难,顺应自然规律,科学组织和安排生产生活,加快脱贫致富步伐,早日实现与全国其他兄弟民族一道过上小康生活的美好梦想。", @"独龙族是我国人口较少的少数民族之一,只有4000多人口,主要聚居在云南省怒江州贡山县独龙江乡。独龙江乡深处峡谷,自然条件十分恶劣,仅有一条独龙江公路通往外界,每年有半年大雪封山、与世隔离,经济社会发展滞后,一直是云南乃至全国最为贫穷落后的地区。XXX对独龙族等人口较少民族地区扶贫工作十分关心,多次作出重要指示,提出明确要求。近年来,YYY认真落实XXX重要指示精神,大力推动独龙江乡扶贫开发工作不断深入,使当地基础设施和群众生产生活不断改善。", @"独龙江公路是独龙族与外界联系沟通的唯一通道,是独龙族同胞生产生活和经济发展的命脉,尤其是公路中途的41公里至63公里的高黎贡山独龙江公路隧道是整条公路建设的瓶颈。公路隧道的贯通,标志着独龙族同胞祖祖辈辈大雪封山半年的历史宣告结束,有助于大幅提升独龙族同胞的生产生活水平。"] retain]; _tableView = [[UITableView alloc] initWithFrame:view.bounds]; _tableView.dataSource = self; _tableView.delegate = self; [self.view addSubview:_tableView]; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *content = _dataArray[indexPath.row]; CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(320, 1000) lineBreakMode:NSLineBreakByWordWrapping]; return size.height + 20;/*这里再加20是为了避免出现...的现象*/ } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [_dataArray count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *identifier = @"mycell"; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if(cell == nil){ cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]; } cell.textLabel.text = _dataArray[indexPath.row]; cell.textLabel.numberOfLines = 0;/*numberOfLine=0表示可以多行,默认是1行*/ cell.textLabel.font = [UIFont systemFontOfSize:15];/**这里字体大小最好设置成和heightForRowAtIndexPath中一样的大小**/ return cell; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (void)dealloc { [_tableView release]; _tableView = nil; [_dataArray release]; _dataArray = nil; [super dealloc]; }
步骤2:给Root05增加_selectedIndex(int) 属性,在loadView方法中将其置为-1;
在(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中增加单选的逻辑判断
/*增加单选的标签*/ if(_selectedIndex == indexPath.row){ cell.accessoryType = UITableViewCellAccessoryCheckmark; }else{ cell.accessoryType = UITableViewCellAccessoryNone; } return cell;
实现协议的didSelectRowAtIndexPath方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // NSIndexPath -> max row 取消上一次选中 NSIndexPath *lastIndex = [NSIndexPath indexPathForRow:_selectedIndex inSection:0]; UITableViewCell *lastCell = [tableView cellForRowAtIndexPath:lastIndex]; lastCell.accessoryType = UITableViewCellAccessoryNone; // 用户选中了新的一行 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.accessoryType = UITableViewCellAccessoryCheckmark; _selectedIndex = indexPath.row; // [_tableView performSelector:@selector(deselectRowAtIndexPath:animated:) withObject:indexPath afterDelay:.5]; }
Part4 —— 创建索引表视图
相关推荐
"IOS-横向-TableView-Demo"就是一个这样的示例项目,它展示了如何在iOS应用中创建一个既能横向又能纵向滚动的表格视图。 这个Demo的核心是扩展UITableView的功能,使其能够处理横向数据。在标准的UITableView中,每...
在`iOS开发 - 第02篇 - UI进阶 - 03 - TableView Cell`中,我们将深入探讨以下知识点: 1. **UITableViewCell**:作为UITableView的基本单元,UITableViewCell是显示数据的最小元素。每个cell通常包含一个或多个...
本压缩包“ios-swift---tableview.zip”显然关注的是如何在Swift中使用UITableView来创建动态、可滚动的数据展示视图。UITableView是iOS应用开发中的一个核心组件,它允许开发者以列表形式展示大量数据,用户可以...
"ios-TableView-悬停.zip"这个压缩包可能包含了一个实现UITableView独特功能的示例,即“悬停”效果。在普通情况下,UITableView会在用户滚动时移除当前屏幕外的单元格,而“悬停”效果则是让某一行或某一列在滚动时...
综上所述,"ios-tableview-上拉加载更多"涉及到了UITableView的数据源和代理方法的使用、滚动事件监听、网络请求、UI反馈和性能优化等多个方面,这些都是iOS开发中非常重要的知识点。通过实践这些技术,开发者可以...
本项目"ios-Swift-tableVIew.zip"显然聚焦于使用Swift和UITableView来创建自定义Cell,同时结合了Masnory进行约束布局,以实现灵活、适应性强的界面设计。以下是对这些知识点的详细讲解: 1. **Swift语言**:Swift...
这篇教程“iOS开发 - 第02篇 - UI进阶 - 02 - TableView”将深入探讨如何使用UITableView来创建一个类似iPhone通讯录的应用,展示各种车标志的列表。 首先,UITableView是一个可滚动的控件,它允许用户通过上下滑动...
总的来说,"ios-tableView的多项选择删除.zip"项目涵盖了在iOS应用中实现tableView多选删除的核心步骤,包括开启多选模式、处理用户选择、展示选中状态以及实现删除功能。开发者可以根据自己的需求进行相应的扩展和...
在iOS开发中,UITableView是一种非常重要的UI组件,用于展示数据列表。这个名为“ios-Move-Delete-Insert-TableView.zip”的资源包显然包含了关于如何在UITableView中实现添加、删除和移动表格行的教程或代码示例。...
在“ios-TableView-条件筛选.zip”这个压缩包中,包含了一个名为“ExampleWithTableView”的示例项目,它展示了如何在UITableView中实现简单的条件筛选功能。这种功能在许多应用程序中都非常常见,例如在电商应用中...
本资源提供的"IOS开发-TableView表视图基础 源码"旨在帮助开发者掌握UITableView的基本使用方法和核心概念。 1. **UITableView介绍** UITableView是一个用于展示动态数据的滚动视图,它可以显示一行行的数据,每个...
当我们谈论"ios-tableview编辑.zip"时,很显然这个压缩包可能包含了一系列关于如何实现UITableView的编辑和删除功能的代码示例、教程或资源。在iOS应用中,允许用户编辑和删除表格内容能提升用户体验,使他们能够更...
在这个“ios-类似百度外卖首页---tableview内嵌套collectionview”的项目中,开发者通过代码抽离和分类的方式,实现了首页控制器的瘦身,提升了代码的可读性和可维护性。 首先,我们来详细解释这个标题所涉及的知识...
在iOS开发中,UITableView是一种常用的UI组件,用于展示列表数据。在某些设计中,我们可能会遇到这样的需求:当用户下拉表格时,顶部的图片会放大,形成一种动态的视觉效果。这个“ios-tableview下拉图片放大”的...
"ios-Tableview测试.zip"中的项目可能是一个简单的示例,用于演示如何在iOS应用中有效地使用UITableView。TestTravelController很可能是一个实现了UITableViewDataSource和UITableViewDelegate协议的...
这个“ios-TableView的Cell上播放视频.zip”资源可能包含了一个示例项目,用于演示如何在UITableView的每个单元格(Cell)中播放视频。以下是对这个主题的详细说明: 首先,为了在UITableView的Cell中播放视频,...
这个"ios-TableView.zip"文件很可能是包含了一些关于如何在iOS应用中使用TableView的示例代码或者教程资料。 TableView的核心概念与知识点包括: 1. UITableView类:作为iOS SDK中的主要视图类,UITableView负责...
这个入门示例将带你逐步了解如何在iOS应用中使用TableView,展示基础的数据,并进行更高级的定制。 首先,让我们了解一下UITableView的基本概念: 1. **UITableView**:它是苹果提供的一个类,用于创建和管理包含...
在点击事件处理后,我们需要更新数据模型,然后调用`tableView.reloadData()`刷新界面,确保UI与数据同步。 7. **动画效果**: 为了提供更好的用户体验,可以在展开和收起二级列表时添加平滑的动画。可以利用`...
而“ios-tableview 嵌套 悬停”这个项目,显然关注的是如何在UITableView中实现嵌套的效果,并且具备悬停功能。这个项目来源于GitHub上的开源库`ArtScrollTableView`,由LeeWongSnail开发,提供了高级的滚动和悬停...