objective c中android tablevieww cell实例

objective-c 自定义UITableViewCell上的delete按钮 - 为程序员服务
为程序员服务
自定义UITableViewCell上的delete按钮
滑动列表行(UITableViewCell)出现删除按钮时,默认是英文“delete”,这份代码片段能够将“delete”变成中文”删除“,甚至可以自定义删
除按钮的形状。
//通过UITableViewDelegate方法可以实现删除 tableview中某一行
//滑动删除
-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
NSUInteger row = [indexPath row];
[bookInforemoveObjectAtIndex:row];//bookInfo为当前table中显示的array
[tableView deleteRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationLeft];
/*此时删除按钮为Delete,如果想显示为“删除” 中文的话,则需要实现
UITableViewDelegate中的- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath方法*/
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
return @&删除&;
//或者,最简单的方式,将plist中的Localization native development region改为China即可
//这只是让默认的Delete按钮显示成了中文的删除按钮而已,如果想将这个删除按钮换成其他图片形式的,怎么办呢?
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *RootViewControllerCell = @&RootViewControllerCell&;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:RootViewControllerCell];
if(cell == nil)
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:RootViewControllerCell]autorelease];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@&delete.png&] forState:UIControlStateNormal];
[button setFrame:CGRectMake(280, 10, 30, 30)];
[button addTarget:self action:@selector(del:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button];
cell.textLabel.text = [array objectAtIndex:[indexPath row]];
cell.tag = [indexPath row];
NSArray *subviews = [cell.contentView subviews];
for(id view in subviews)
if([view isKindOfClass:[UIButton class]])
[view setTag:[indexPath row]];
[cell.contentView bringSubviewToFront:view];
-(void)del:(UIButton *)button
NSArray *visiblecells = [self.table visibleCells];
for(UITableViewCell *cell in visiblecells)
if(cell.tag == button.tag)
[array removeObjectAtIndex:[cell tag]];
[table reloadData];
//该片段来自于
您可能的代码
相关聚客文章
相关专栏文章UITableView 系列三 :分类显示和改变外观 (实例) - Just Code - ITeye技术网站
博客分类:
1. 分类显示 sections
在之前的文章一文中,已经示范如何在 UITableView 中设定所要显示的资料,以及分别显示这些资料的细节,但是如果资料比数太多时该怎么办?你可以参考本篇文章的做法,将资料做分类的处理,并且建立快速索引,让使用者能以最短的时间找到所需要的资料。资料分类的概念动态表格的内容多半是存放在阵列当中方便资料的存取,如果你有好几类不同比的资料,你可以将这些资料分别存放在不同的阵列里,最后再使用一个 NSMutableArray 将这些存放不同资料的阵列包起来,之后我们只要针对这个 NSMutableArray 做操作即可。(以下是沿用之前文章的程式码做修改)
//资料初始化
roleArray = [[NSArray alloc] initWithObjects:@"野蛮人", @"法师", @"弓箭手", @"盗贼", @"德鲁伊", @"骑士", nil];
monsterArray = [[NSArray alloc] initWithObjects:@"哥布林战士", @"哥布林护卫", @"哥布林军官", @"哥布林王", @"黑暗德鲁伊", @"狼人", @"傀儡护卫", @"傀儡领主", @"蜘蛛", @"蝙蝠", nil];
heroicaArray = [[NSMutableArray alloc] initWithObjects:roleArray, monsterArray, nil];
UITableView Sections 的设定如果要将资料作分类显示,可以使用以下的内建方法函式,并回传一个 NSInteger,告诉 UITableViewController 你想将资料分成几类。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [heroicaArray count];
程式码到此就已经算是完成资料的分类,后续的动作就是要显示这些分类好的资料,大致的程式码都和之前的文章差不多,只是操作的物件不同,可以透过方法函式所得到的 section 参数,决定于目前是要处理那一类的资料。
//设定每一类的资料笔数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[heroicaArray objectAtIndex:section] count];
//设定每一类的资料内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
//制作可重復利用的表格栏位Cell
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
//设定栏位的内容与类型
cell.textLabel.text = [[heroicaArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureB
分类标题与快速索引分类的标题可以家在分类的开头或是结尾,同样是透过方法函式所得到的 section 参数,来确认目前所在的分类。
//设定分类开头标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
switch (section) {
return @"英雄角色";
return @"怪物角色";
return @"";
//设定分类结尾标题
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
另外,建立类似电话簿的快速索引,则可以透过下列内建方法函式,回传一个快速索引的阵列,阵列内容的顺序,就是你分类的顺序。
//建立快速索引
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
NSArray *index = [[NSArray alloc] initWithObjects:@"英雄", @"怪物", @"武器", @"道具", @"战利品", @"其他", nil];
比较好的做法在上述分类标题与快速索引的部分,使用 switch 与静态的数值来做设定,其实这不是很恰当的做法,尤其当你的资料笔数非常庞大的时候,比较好的建议是将这些资讯同样放入阵列里面,且动态存取它们,来完成设定标题与建立索引阵列。另外要注意的是,虽然是好几类不同的资料,但是他们最好还是能拥有相同的属性,即使该属性为 nil。例如 A 类型的资料有颜色属性,但是 B 类型没有或是不需要,但是仍需为 B 类型的资料保留颜色属性,即使它们的值都是 nil,这样的观念有点类似于多型 Polymorphism,这样不但可以减少程式码的撰写,对于表格内的资料也能保持一致性。
2. 改变外观
UITableView 所制作出来的应用程式在使用上多半大同小异,它们之间最大的不同还是在表格的呈现方面,如何设计出具有独特外观的 UITableView,才是令人头痛的问题,通常是选择制作一个全新的 UITableViewCell 来使用,但是你也可以採用比较简单的做法,使用内建的方法函式来做些微的改变,方式如下。Table View整个 Table View 能改变的东西实在不多,多半都是更改背景,但是当你更改背景颜色之后就会发现 Cell 与 Cell 之间会多出一条白线 Separator,你可以参考下列程式码改变它的颜色或是移除不显示。
//改变Separator颜色
[self.tableView setSeparatorColor:[UIColor orangeColor]];
//移除Separator
[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
Table View CellTable View Cell 本身就提供一些不同的类型可供选择,如下图,你可以藉由选择不同的类型来改变文字在 Cell 中编排的方式。
Attributes 中的 Style 属性另外如果想要在 Cell 中增加其它元件时,可以使用 addSubview 的方法函式来添加新的元件,例如在下列程式码中,除了设定左右的图像之外,还自行新增了一个 UILabel 放在其中。
//设定文字背景为透明
[cell.textLabel setBackgroundColor:[UIColor clearColor]];
//设定Cell中左边的图片
cell.imageView.image = [UIImage imageNamed:[[heroicaArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row + 1]];
//设定Cell中右边的连结图片
cell.accessoryView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"dice.png"]];
//增加UILabel
UILabel *subtitle = [[UILabel alloc] initWithFrame:CGRectMake(95.0, 45.0, 200.0, 20.0)];
[subtitle setTextColor:[UIColor colorWithHue:1.0 saturation:1.0 brightness:1.0 alpha:0.5]];
[subtitle setBackgroundColor:[UIColor clearColor]];
[subtitle setFont:[UIFont systemFontOfSize:12.0]];
[subtitle setText:@"还可以放注解唷"];
[cell addSubview:subtitle];
//设定背景
[cell setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"CellBG.png"]]];
Section透过下列内建的方法函式,可以自行更改 Section 的标题内容。
//设定开头的分类样式
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *sectionView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];
[sectionView setBackgroundColor:[UIColor brownColor]];
//增加UILabel
UILabel *text = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 18)];
[text setTextColor:[UIColor blackColor]];
[text setBackgroundColor:[UIColor clearColor]];
[text setText:[[heroicaArray objectAtIndex:section] objectAtIndex:0]];
[text setFont:[UIFont boldSystemFontOfSize:16.0]];
[sectionView addSubview:text];
return sectionV
//设定结尾的分类样式
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
Section Index表格分类的快速索引虽然没有内建的方法函式可供设定外观使用,但是你仍然可以透过自制的索引介面并配合下列程式码,将表格切换到所想要的分类上。
CGRect sectionRect = [self.tableView rectForSection:1];
[self.tableView scrollRectToVisible:sectionRect animated:YES];
备註如果表格个对应的资料结构有任何问题,可以在「索引式搜索」中的「元件设定」分类里找到所有有关 UITableView 的,查阅其他有关表格的设定方式。
浏览: 4306295 次
来自: 洛杉矶
nicai11w 写道如果轮询时间是27s,那一扫瞄就立即登录 ...
如果轮询时间是27s,那一扫瞄就立即登录了,是怎么做到的?
Gr_ay 写道本地需要安装什么软件么应该不需要吧,这个是是官 ...
本地需要安装什么软件么
yekairush 写道ie11怎么好像不支持!我好像没有试过 ...收藏,11.9k 浏览
当我们最开始启动 iOS 编程课程的时候,我们写了一个关于 UITableView 的教程,展示了如何使用 UITableView 去。这是我们最受欢迎的教程之一。然而,你可能会发现这个教程在 Xcode 5 下不适用了。最新版的 Xcode 促进了界面生成器(Interface Builder)中 Storyboard 的使用。Storyboard 不再是一个开发项目时的候选,它是默认的了。这是为什么那份教程不适用的原因之一。
无论如何,我们决定去完全地为 Xcode 5 和 iOS 7 更新那份表格视图(Table View)的教程。我们现在开始吧!
进入 UITableView 教程
首先,什么是 iPhone 应用里面的表格视图(Table View)?表格视图是 iOS 应用中一个基础的 UI(user interface) 元素。从某种意义上讲,大多数应用都利用表格视图去显示一系列的数据。最好的例子就是内置的电话(Phone)应用。你的联系人是在一个表格视图中展示的。另一个例子是邮件(Mail)应用。它使用表格视图去显示你的邮件箱和邮件。不仅仅是可以用于展示文字数据,表格视图也允许你展示图片形式的数据。YouTube 和 Airbnb 这两个应用就是最好的例子。
创建一个简单表格项目
带着表格视图的概念,让我们动手去开发一个简单的应用。如果你真的想学习 iOS 编程,你不要只是阅读这个教程。打开你的 Xcode 开始写代码吧!这是学习编程最好的方式。
当你打开 Xcode 后,选择 "Single View application" 模板,创建一个新的项目。
点击 "Next" 继续。接着,填写所有创建 Xcode 项目时的必要选项。
项目名称(Product Name):SimpleTable -- 这是你的应用的名字。
公司标识符(Company Identifier):com.appcoda -- 这实际上写出另一种形式的域名,如果你有自己的域名,你可以使用自己的域名。否则,你可以使用我的域名,或者干脆填上:"edu.self"
类前缀(Class Prefix):SimpleTable -- Xcode 使用类前缀去自动为类命名。在将来你或者可以选择自己的类前缀甚至干脆留空。但现在的这个项目,还是保持简单,把它设为 "SimpleTable"。
设备系列(Device Family):iPhone -- 只需为这个项目选择 "iPhone"。
接着点击 "Next" 下一步。Xcode 会询问你在那里保存这个 "SimpleTable" 项目。选择一个文件夹(例如 Desktop)去保存你的项目。保持版本控制(Source Control)的选项不选,点击 创建(Create) 继续。随便选一个文件夹保存你的项目。经过你确认之后,Xcode 会自动基于你的选择创建 "SimpleTable" 项目。完成后的画面会是下面那样:
首先,我们创建一个用户界面,然后添加表格视图。选择 Main.storyboard 转换到 Storyboard 界面。
SimpleTable 项目的 StoryBoard
在对象库(Object Library)中,选择"Table View" 对象,然后拖拽到视图中。
稍微挑战一下它的高度,这样它就不会掩盖住状态栏(status bar)。插入表格视图后,你的屏幕看起来应该会像下面那样。
第一次运行你的应用
在继续深入之前,使用模拟器试着运行你的应用。点击 "Run" 按钮去构建你的应用,然后测试。
模拟器屏幕上看起来应该会是下面那样:
很简单是不是?你已经为你的应用设计了表格视图。然而,到现在为止,视图里面没有任何东西。下一步,我们会写一些代码去添加表格数据。
增加表格数据
返回到项目导航,选择 "SimpleTableViewController.h"。在 "UIViewController" 后面附加 "&UITableViewDelegate, UITableViewDataSource&"
#import &UIKit/UIKit.h&
@interface SimpleTableViewController : UIViewController &UITableViewDelegate, UITableViewDataSource&
UITableViewDelegate 和 UITableViewDataSource 是 Objective-C 中的协议。基本上,如果要在表格视图中展示数据,我们必须接纳定义在协议中的要求,实现所有必须实现的方法。
现在,我们开始为应用写代码。选择 “SimpleTableViewController.m” 然后定义一个处理表格数据的实例变量。
@implementation SimpleTableViewController
在 viewDidLoad: 方法中,添加下面的代码去声明 "recipes" 数组。我们用一系列的菜谱(recipes)初始化数据。
- (void)viewDidLoad
[super viewDidLoad];
// Initialize table data
recipes = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", @"Full Breakfast", @"Hamburger", @"Ham and Egg Sandwich", @"Creme Brelee", @"White Chocolate Donut", @"Starbucks Coffee", @"Vegetable Curry", @"Instant Noodle with Egg", @"Noodle with BBQ Pork", @"Japanese Noodle with Pork", @"Green Tea", @"Thai Shrimp Cake", @"Angry Birds Cake", @"Ham and Cheese Panini", nil];
最后,我们必须增加两个 datasource 方法:tableView:numberOfRowsInSection 和 tableView:cellForRowAtIndexPath。这两个方法是 UITableViewDataSource 协议的一部分。第一个方法是用于通知表格视图在这个区段(section)中有多少行。所以我们添加下面的代码。count: 方法只是返回 tableData 数据中条目的数量。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return [recipes count];
接着,我们继续实现其他需要的方法。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *simpleTableIdentifier = @"SimpleTableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.textLabel.text = [recipes objectAtIndex:indexPath.row];
cellForRowAtIndexPath: 方法会在表格每一行显示的时候被调用。下面描述了关于 UITableView 和 UITableDataSource 如何工作的概念,看完应该能更好地理解。
现在,点击 Run 按钮,测试你最后的程序。噢!!你看到的仍然是一个空的应用。它就像之前一样。
为什么还是空的呢?我们早已经写了产生表格数据的代码,也实现了需要的方法。但为什么表格视图没有像我们预料的那样显示?
还要一件事要做。
连接 DataSource 和 Delegate
就像是教程最初的 "Hello World" 按钮,我们必须为我们创建的两个方法和表格视图之间建立一个连接。
回到 Main.storyboard,选择表格视图。按住你键盘上的 Control 键,点击表格视图,然后拖拽到 dock 上的 "Simple Table View Controller"。你的屏幕会像下面那样:
放开两个按钮,一个弹条(pop-up)会显示 dataSource 和 delegate。你可以再一次选择表格视图。在 Utility 区域上方,你可以在 Connection Inspector(最右的 tab) 看到项目中存在的连接。
测试你的应用
最后,可以测试你的应用了。点击 "Run" 按钮,然后让模拟器加载你的应用。
增加 Thumbnail 到你的表格视图
这个表格视图看起来太朴素了,对不?如果说给每一行加一张图呢?iOS SDK 可以非常容易让你做到这个。你只需要增加一行为每一行插入一个 thumbnail 的代码。
首先,。你也可以使用自己的图片,但必须命名为 “creme_brulee.jpg”。在项目导航里,右击 "SimplyTable" 文件夹,然后选择 "Add Files to SimpleTable…"
选择你下载的的图片文件,在复选框(checkbox)中选择 "Copy items to destination group’s folder"。选择这个选项后,图片会被复制到项目文件夹下面。
现在,编辑 SimpleTableViewController.m 文件,把下面的那行代码添加到 tableView:cellForRowAtIndexPath 方法中,把它放到 "return cell" 之前。
cell.imageView.image = [UIImage imageNamed:@"creme_brelee.jpg"];
编辑后,你的代码看起来应该是下面那样的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *simpleTableIdentifier = @"SimpleTableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
cell.textLabel.text = [recipes objectAtIndex:indexPath.row];
cell.imageView.image = [UIImage imageNamed:@"creme_brelee.jpg"];
表格视图的格带有一个展示图片的默认属性。上面那行的代码只是加载图片,然后展示到表格格子的图像区域中。现在,再次点 "Run" 按钮,你的 SimpleTable 应用应该会在每一行显示图片。
其实创建一个表格视图很简单是不是?表格视图是 iOS 编程中最通用的元素之一。如果你阅读了这个教程,跟着我们一起创建这个应用,你应该会对如何创建表格视图有基本的理解。我尽量把这里的内容说得很简单。在实际中,表格的数据不会像上面那样直接存在代码里。一般来说,它是从文件、数据库或者其他地方加载进来的。在后面的教程中,你会学习如何从一个文件中存储和加载表格数据。在进一步深入之前,确保你能完全明白表格视图是如何运作的。否则,你需要重读一次这个教程。
作为一个参考,你可以从这里下载上面的 Xcode 项目。
你可能感兴趣的文章
4 收藏,1.3k 浏览
3 收藏,1.1k 浏览
不要错过 TA 的任何更新
如果这篇文章对你有帮助,记得点赞收藏哦,你的支持是我们的动力 ^___^
本文隶属于专栏
新闻资讯一手掌握
分享到微博?
举报理由:
推广(招聘、广告、SEO 等)方面的内容
带有人身攻击、辱骂、仇恨等违反条款的内容
与已有问题重复(请编辑该提问指向已有相同问题)
内容质量差,或不适合在本网站出现
答非所问,不符合答题要求
其他原因(请补充说明)
补充说明:当前位置:&&
本页文章导读:
&&&&?Unity3D汉语言视频教程【超清+精选】 &&&&&& Unity3D中文视频教程【超清+精选】
视频: Unity3D 公开课001__引擎综述 (康托耶夫)
/v_show/id_XMzQxOTU3NTY4.html
视频: Unity3D 公开课002__创建项目并发布 (康托耶夫)
/v_......&&&&? objective-c 键值观察者KVO方式的学习 &&&&&& objective-c 键值观察者KVO模式的学习KVO 键值观察者模式是cocoa的一个重要机制类似Notification模式。当被观察者属性发生改变时观察者做相应的操作。
新建一个Person类继承NSObject,添加name和age属......&&&&? Three20学习之施用TTableViewController实现简单的设置界面&&&&&& Three20学习之使用TTableViewController实现简单的设置界面Three20对TableViewController 实现了更好的封装,使实现列表类的界面更加简单。现在我们使用TTTableViewController实现简单的设置界面。
新建一个......
&&&&&&最新IT科技资讯推荐:
[1]Unity3D汉语言视频教程【超清+精选】
&&&&来源:&互联网& 发布时间:&
Unity3D中文视频教程【超清+精选】
视频: Unity3D 公开课001__引擎综述 (康托耶夫)
/v_show/id_XMzQxOTU3NTY4.html
视频: Unity3D 公开课002__创建项目并发布 (康托耶夫)
/v_show/id_XMzQxOTg5NjAw.html
视频: Unity3D 公开课003__关于unity3d所用的资源格式 (康托耶夫)
/v_show/id_XMzQyMzA4NzQ0.html
视频: Unity3D 公开课004__那些unity3d自带unitypackage的故事A(康托
/v_show/id_XMzQyNDcwNTQw.html
视频: Unity3D 公开课005__那些unity3d自带unitypackage的故事B (康托耶
/v_show/id_XMzQyNTY5NzQw.html
视频: Unity3D 公开课006__那些unity3d自带unitypackage的故事C (康托耶
/v_show/id_XMzQyNjU4MDE2.html
视频: Unity3D 公开课006__如何做漂亮的山体 (康托耶夫)
/v_show/id_XNDExMzE2MTM2.html
。。。。。。
/search_video/q_unity3d+公开课
1楼fth昨天 21:19谢谢,先看看
[2] objective-c 键值观察者KVO方式的学习
&&&&来源:&互联网& 发布时间:&
objective-c 键值观察者KVO模式的学习KVO 键值观察者模式是cocoa的一个重要机制类似Notification模式。当被观察者属性发生改变时观察者做相应的操作。
新建一个Person类继承NSObject,添加name和age属性,接着建一个PersonObserver类继承于NSObject同时实现- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context方法
具体如下:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([keyPath isEqualToString:kPathName]) {
NSLog(@"old name:%@ \nnew name:%@", [change objectForKey:@"old"], [change objectForKey:@"new"]);
//Do something what you want to do
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
利用keyPath判断是否是我们监听的属性发生了变化,如果是做相应的操作。
为对象添加观察者:
Person *person = [[Person alloc] init];
[person setName:@"old name"];
PersonObserver *observer = [[PersonObserver alloc] init];
[person addObserver:observer forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
[person setName:@"new name"];
[person removeObserver:observer forKeyPath:@"name"];
运行效果:
16:08:04.347 learnOcKVO[] old name:old name
new name:new name
[3] Three20学习之施用TTableViewController实现简单的设置界面
&&&&来源:&互联网& 发布时间:&
Three20学习之使用TTableViewController实现简单的设置界面Three20对TableViewController 实现了更好的封装,使实现列表类的界面更加简单。现在我们使用TTTableViewController实现简单的设置界面。
新建一个工程,导入Three20库。新建一个类SettingsViewController继承于TTTableViewContoller,在
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil方法中对view进行初始化并设置table的数据,具体代码:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
self.title = @"设置";
self.tableViewStyle = UITableViewStyleG
TTTableButton *userButton = [[TTTableButton alloc] init];
userButton.text = @"注销 cloay";
userButton.delegate =
userButton.selector = @selector(actionLoginOut);
self.dataSource = [TTSectionedDataSource dataSourceWithObjects:@"账号设置",
userButton,
@"网络设置",
[TTTableControlItem itemWithCaption:@"只在wifi网络下加载图片" control:[[UISwitch alloc] init]],
@"评价打分",
[TTTableButton itemWithText:@"给我们打分,评价一把" delegate:self selector:@selector(pingjia)],
[TTTableButton itemWithText:@"意见反馈" delegate:self selector:@selector(feedback)],
大部分属性与TableViewController一样,Three20里封装了一些table UI控件,如按钮等,可以直接充当cell。
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)

我要回帖

更多关于 android tableview 的文章

 

随机推荐