- 浏览: 551348 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
toyota2006:
thank you!
适配器(Adapter)模式 -
910014107:
收藏一下
JIRA安装和破解 -
wangchaobashen:
注册完是一年期的License,请问这个期限该如何修改呢?
JIRA安装和破解 -
ihqn19:
总而言之,就是不知道你想表达什么就对了。
JS 面向对象的简单应用实例 -
jxls162408:
第四步更新tomcat libraris ,找不到那个包呀。怎 ...
JIRA安装和破解
在实例一我们做了一个最基本的导航列表(其实还没有导航功能,只不过简单的菜单而已),在本例中进一步丰富我们的导航列表,并增加导航功能,拭目以待吧!
一、首先先丰富一下导航列表
目标:1、加上图标;2、加上明细;3、加上导航按钮;
准备三个图标文件并拖拽到工程下的Resources下
在h文件中添加图标NSMutableArray *iconItems; NSMutableArray *detailItems;声明代码
@interface TableViewDemo1ViewController :
在m文件viewDidLoad添加iconItems的初始化代码
以上都准备好后修改UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法
注意实例化cell时注意样式由原来的UITableViewCellStyleDefault缺省改成UITableViewCellStyleSubtitle
添加导航按钮 在m文件中添加委托函数– tableView:accessoryTypeForRowWithIndexPath:
好现在我们执行程序看看
但是需要注意的时官方文档告诉我们accessoryTypeForRowWithIndexPath这个委托函数在iOS 3.0之后已经被废弃了,现在可以在UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中添加
cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton;
二、现在导航按钮已经有了但是只是个空按钮,下一步我们添加其功能
1、添加NextControlView类文件及NextControlView.xib文件,还有准备所需图片
2、编辑NextControlView.m
3、在TableViewDemo1ViewController.m中增加如下导航按钮的处理代码,
好,现在我们运行程序试一试
但是经过试验点击导航按钮时没有任何反应,这时怎么回事呢?我们再仔细分析一下上面的导航按钮处理函数,注意最后一行代码:[self.navigationController pushViewController:nextControlView animated:YES]; 是做切换画面功能的
那么self.navigationController 是什么?其实至此我们落掉了一个很重要的控制器即导航控制器,因为self 必须在navigation栈中,self.navigationController才不会为空,才可以帮助我们转化画面。下面我们来加上这个navigationController
首先更改TableViewDemo1AppDelegate.h代码如下:
增加navigationController 去掉viewController
在TableViewDemo1AppDelegate.m修改didFinishLaunchingWithOption函数如下
打开MainWindow.xib文件在IB设计器中删除原来的Table View Demo1 View Controller
增加一个Navigation Controller并且设置View Controller (Root View Controller)关联到TableViewDemo1ViewController
最后选择TableViewDemo1 App Delegate
如下图左键选中navigationController到Table View Demo1 View Controller做关联
关联后
OK至此我们导航控制器配置完毕,运行程序
分别点击中国、美国、日本一切正常显示见下图:
在本例中基本导航功能我们也已经做成,在下一实例中还会进一步的增加导航列表的复杂编辑
功能
附工程代码见附件TableViewDemo2.zip
一、首先先丰富一下导航列表
目标:1、加上图标;2、加上明细;3、加上导航按钮;
准备三个图标文件并拖拽到工程下的Resources下
在h文件中添加图标NSMutableArray *iconItems; NSMutableArray *detailItems;声明代码
@interface TableViewDemo1ViewController :
UIViewController<UITableViewDelegate,UITableViewDataSource> { IBOutlet UITableView *tableViewList; NSMutableArray *dataItems; NSMutableArray *iconItems; NSMutableArray *detailItems; } @end
在m文件viewDidLoad添加iconItems的初始化代码
- (void)viewDidLoad { [super viewDidLoad]; dataItems=[[NSMutableArray alloc]initWithObjects:@"中国",@"美国",@"日本",nil]; iconItems=[[NSMutableArray alloc]initWithObjects:@"cn",@"us",@"jp",nil]; detailItems=[[NSMutableArray alloc]initWithObjects:@"China",@"America",@"Japan",nil]; }
以上都准备好后修改UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法
注意实例化cell时注意样式由原来的UITableViewCellStyleDefault缺省改成UITableViewCellStyleSubtitle
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { //实例化cell时注意样式由原来的UITableViewCellStyleDefault缺省改成UITableViewCellStyleSubtitle cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; } NSUInteger row=[indexPath row]; //添加图标 cell.imageView.image =[UIImage imageNamed:[NSString stringWithFormat:@"%@.gif",[iconItems objectAtIndex:row]]]; cell.textLabel.text=[dataItems objectAtIndex:row]; //添加明细 cell.detailTextLabel.text =[detailItems objectAtIndex:row]; // Configure the cell. return cell; }
添加导航按钮 在m文件中添加委托函数– tableView:accessoryTypeForRowWithIndexPath:
-(UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath{ //返回类型选择按钮 return UITableViewCellAccessoryDetailDisclosureButton; }
好现在我们执行程序看看
但是需要注意的时官方文档告诉我们accessoryTypeForRowWithIndexPath这个委托函数在iOS 3.0之后已经被废弃了,现在可以在UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中添加
cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { //实例化cell时注意样式由原来的UITableViewCellStyleDefault缺省改成UITableViewCellStyleSubtitle cell = [[[UITableViewCell alloc] initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; } NSUInteger row=[indexPath row]; //添加图标 cell.imageView.image =[UIImage imageNamed:[NSString stringWithFormat:@"%@.gif",[iconItems objectAtIndex:row]]]; cell.textLabel.text=[dataItems objectAtIndex:row]; //添加明细 cell.detailTextLabel.text =[detailItems objectAtIndex:row]; //导航按钮 cell.accessoryType= UITableViewCellAccessoryDetailDisclosureButton; return cell; }
二、现在导航按钮已经有了但是只是个空按钮,下一步我们添加其功能
1、添加NextControlView类文件及NextControlView.xib文件,还有准备所需图片
2、编辑NextControlView.m
- (void)viewDidLoad { self.imgArray = [[NSMutableArray alloc] init]; for(int i=1;i<=3;i++) { NSString *imgName =[NSString stringWithFormat:@"img%d.jpg",i]; [self.imgArray addObject:imgName]; } [self.imgArray release]; UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 436)]; [img setImage:[UIImage imageNamed:[self.imgArray objectAtIndex:0]]]; self.imgView = img; [self.imgView setContentMode:UIViewContentModeScaleAspectFit]; [self.view addSubview:imgView]; [img release]; [imgView setImage:[UIImage imageNamed:[self.imgArray objectAtIndex:Page]]]; self.title = [NSString stringWithFormat:@"image %@",[self.imgArray objectAtIndex:Page]]; [super viewDidLoad]; }
3、在TableViewDemo1ViewController.m中增加如下导航按钮的处理代码,
-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{ NSInteger row = indexPath.row; nextControlView = [[NextControlView alloc] initWithNibName:@"NextControlView" bundle:nil]; nextControlView.Page=row; [self.navigationController pushViewController:nextControlView animated:YES]; }
好,现在我们运行程序试一试
但是经过试验点击导航按钮时没有任何反应,这时怎么回事呢?我们再仔细分析一下上面的导航按钮处理函数,注意最后一行代码:[self.navigationController pushViewController:nextControlView animated:YES]; 是做切换画面功能的
那么self.navigationController 是什么?其实至此我们落掉了一个很重要的控制器即导航控制器,因为self 必须在navigation栈中,self.navigationController才不会为空,才可以帮助我们转化画面。下面我们来加上这个navigationController
首先更改TableViewDemo1AppDelegate.h代码如下:
增加navigationController 去掉viewController
@interface TableViewDemo1AppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; //TableViewDemo1ViewController *viewController; UINavigationController *navigationController; } @property (nonatomic, retain) IBOutlet UIWindow *window; //@property (nonatomic, retain) IBOutlet TableViewDemo1ViewController *viewController; @property (nonatomic, retain) IBOutlet UINavigationController *navigationController; @end
在TableViewDemo1AppDelegate.m修改didFinishLaunchingWithOption函数如下
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //[self.window addSubview:viewController.view]; [window addSubview:[navigationController view]]; [self.window makeKeyAndVisible]; return YES; }
打开MainWindow.xib文件在IB设计器中删除原来的Table View Demo1 View Controller
增加一个Navigation Controller并且设置View Controller (Root View Controller)关联到TableViewDemo1ViewController
最后选择TableViewDemo1 App Delegate
如下图左键选中navigationController到Table View Demo1 View Controller做关联
关联后
OK至此我们导航控制器配置完毕,运行程序
分别点击中国、美国、日本一切正常显示见下图:
在本例中基本导航功能我们也已经做成,在下一实例中还会进一步的增加导航列表的复杂编辑
功能
附工程代码见附件TableViewDemo2.zip
- TableViewDemo2.zip (162.7 KB)
- 下载次数: 279
评论
3 楼
wenjing123.li
2011-02-18
例子已经完成了,谢谢博主~
2 楼
wenjing123.li
2011-02-17
下载你的例子在MAC上不能运行 我的是Simulator3.1.3的SDK
1 楼
wenjing123.li
2011-02-17
hi 按照你的步骤 来的 最后点击列导航按钮,运行完[self.navigationController pushViewController:nextControlView animated:YES];
程序就没反应了
程序就没反应了
发表评论
-
画板使用
2011-04-13 15:46 3365Painting.h #import <UIKit/UI ... -
UIImage应用与内存管理
2011-03-24 10:44 4065用UIImage加载图像的方法很多,最常用的是下面两种: ... -
NSMutableArray与NSArray的区别
2011-03-21 16:05 24791: NSMutableArray能添加、插入、删除对象,而 ... -
iPhone/iPad 开发: 可编辑的TableView
2011-01-21 15:33 6271可编辑的TableView 在编写简单的导航控制器基础上,让T ... -
iPhone/iPad 开发:录音及声音播放
2011-01-21 15:30 4709-(IBAction) recordOrStop: (id) ... -
iphone/ipad开发:编写声控红旗飘飘
2011-01-21 15:24 1497见附件Flag.zip -
TableView 的使用 实例一
2010-12-14 13:45 10442TableView 是iphone/ipad中常常会用到的导航 ... -
iPhone/iPad 开发: 解析本地/网络上的xml文件(实例建附件)
2010-11-16 11:46 49461、解析本地xml文件 //找到本地test.xml文件 ... -
iPhone/iPad 开发: Objective-C 接分字符串成数组(类似java 的 split)
2010-11-11 14:46 6787在很多语言如 java , ruby , python中都有将 ... -
iPhone/iPad SQLite3 简明 使用 实例
2010-11-02 11:54 6839简单sqlite使用 sqlite是嵌入式的和轻量级的sql数 ... -
iPhone/iPad Timer 使用
2010-10-22 16:54 1873//以下代码为每隔1.5秒执行一次autoPlay函数 [ ... -
视图翻转问题
2010-10-22 16:47 1611//实现shouldAutorotateToInterface ... -
解决子view被ViewController遮挡的问题
2010-10-22 16:42 2146ViewController在加载子View的时候会出现子Vi ... -
iPhone/iPad 动画效果切换画面
2010-10-22 11:48 3387iPhone/iPad 动画效果切换画面 -(void)s ... -
内存管理总结
2010-10-22 11:40 1238iPhone系统中的Objective-C的内存管理机制是 ... -
iPhone/iPad 读写 Plist文件
2010-10-22 11:36 4862iPhone/iPad 读写 Plist文件 1.写Pli ... -
iPhone开发经典语录集锦
2010-10-22 11:21 1161引用1:如果无法保证子类行为的一致性,那么就用委托 If t ... -
深入理解iPhone委托模式兼谈iPhone生命周期
2010-10-22 11:10 2612深入理解iPhone委托模式兼谈iPhone生命周期 本文转载 ... -
得到application对象
2010-10-22 10:56 997application=[UIApplication shar ... -
iPhone/iPad程序 点击 休眠键委托事件 和 唤醒后的响应事件
2010-10-13 17:03 2020//休眠后委托事件 - (void)application ...
相关推荐
本实例将探讨“TableView 的使用 实例一”,通过一个简单的项目实战来深入理解UITableView的工作原理和使用方法。 首先,我们需要在Xcode中创建一个新的iOS项目,并引入UITableView。在Storyboard中,拖拽一个...
2. **创建TableView**:然后,我们实例化一个TableView,并为其添加所需的列。 ```java TableView<Person> tableView = new TableView(); TableColumn, String> firstNameCol = new TableColumn("First Name"); ...
"iPhone网格TableView实例"是指在iPhone应用中使用UITableView来创建类似网格的布局,通常指的是每个单元格(cell)拥有相同的宽度和高度,形成整齐的矩阵效果。这种布局方式常见于图片展示、商品目录或者菜单选项等...
下面我们将深入探讨`TableView`的使用方法,包括数据列的绑定。 `TableView`是JavaFX中的一个视图类,它允许开发者创建具有可编辑或只读行和列的数据表。在实际开发中,`TableView`常用于显示大量结构化的数据,...
2. **多个TableView**:在同一个视图控制器中,可以添加并管理多个UITableView实例,每个TableView对应不同的数据源和代理。这需要确保每个TableView的滑动事件能够独立处理,同时还需要处理好不同TableView之间的...
swt中treeview和tableview实例,有助于理解这两个控件的使用。另外附带html页面。。可读性更强。
标题“一个tableview很好的例子”表明我们将探讨一个关于如何有效地使用UITableView的示例。描述中提到这个例子非常适合初学者,意味着我们将深入浅出地讲解其基本概念和实现方式。 UITableView主要由两大部分组成...
通过这些实例,开发者不仅可以掌握TableView的基本使用,还能了解到如何将其与其他iOS控件和功能(如Navigation Controller)结合,构建更复杂、交互丰富的界面。实践中不断学习和理解这些功能,对于提升iOS开发技能...
下面我们将对 TableView 的使用进行分析,并总结出一些重要的知识点。 一、初始化 TableView 在使用 TableView 之前,需要初始化它。InitTableViewLayer() 函数可以创建一个TableView 对象,并对其设置一些属性,...
2. **QTTableView**: QTTableView是QT的QTableView类的实例,它是模型/视图/控制器(MVC)架构的一部分。在QT中,数据和显示分离,模型负责管理数据,视图负责显示数据,而控制器处理用户交互。QTTableView可以...
本实例“iphone 实例 tableview 05”聚焦于使用Interface Builder(IB)设计基本的Cell,这将帮助开发者更直观地构建用户界面。05-Basic IB Cell.rar文件可能包含了一个Xcode项目,该项目演示了如何在故事板...
在iOS开发中,UITableView是展示数据的常用控件,它以列表的形式呈现信息,而"iphone 实例 tableview 04 04-Cell Kinds.rar"是一个关于使用UITableView的实例,特别关注了不同类型的Cell。在这个项目中,开发者可能...
本实例“iphone开发实例 TableView 02”将重点讲解如何通过偏移量(Offset)改变TableView背景,这通常用于实现滚动时背景动态变化的效果,提升用户体验。 首先,我们需要了解UITableView的基本结构。UITableView由...
本实例着重讲解如何使用`QTableView`进行数据操作以及将表格视图导出为PNG图像。 首先,`QTableView`是Qt GUI库中的一个视图类,它提供了用户界面来展示模型数据。创建一个`QTableView`实例后,你需要设置一个数据...
本实例“`iphone 实例 tableview 03`”着重讲解如何在`UITableView`中添加背景图片,以提升应用的视觉效果和用户体验。`03-Adding an Image Backsplash.rar`这个压缩包文件,很显然是包含了一个具体实现这一功能的...
在`main.cpp`中,我们需要创建TableView实例,设置数据源和单元格回调函数,以便在数据变化时自动更新界面。 在资源文件方面,`resource.h`可能包含了资源的ID定义,`main.h`包含了主类的声明,而`scrollView.rc`则...
`TableViewSection展开隐藏`是UITableView高级用法的一个实例,它允许用户通过点击某个Section头部来展开或隐藏该Section下的所有行。这样的交互设计可以有效地组织和管理大量信息,提高用户体验。 首先,我们要...
本实例“iphone开发实例 TableView 01-Basic Table”旨在介绍如何在iPhone应用中创建和使用基本的表格视图。在这个过程中,我们将探讨`UITableView`的基本用法,包括数据源协议、委托模式以及如何填充单元格。 首先...