您的位置:首页 > 其它

在tableView上展示数据时遇到的问题

2012-04-11 15:17 435 查看
这些天下来,就做了一个界面,显然是慢了,在tableView上显示的假数据都搞得这么麻烦,显然是值得反思的,里面涉及到的技术要点还是有些的。

首先得需实现增删cell,然后得实现增删cell后假数据不能错乱,每一个cell里都有一个lable和一个textField,刚开始我写的是用一个数组存储lable要显示的数据,用字典来存储以后在textField里要显示的数据,可是在做增加删除cell时发现,处理起来比较麻烦,写了很多代码,而且让别人看起来很困难,可读性不强,只是自己一味的蛮干。

NSMutableArray *array = [[NSMutableArray
alloc]
initWithObjects:@"出发城市:",@"目的城市:",

@"出发日期:",@"旅客姓名:",@"证件号码:",@"配送地址:",nil];

self.fieldLables = array;
[array
release];

NSMutableDictionary *dict = [[NSMutableDictionary
alloc]
init];

self.tempValues = dict;
[dict
release];

因为在删除一个cell时要上调下面的cell里的关键字,所以牵一发而动全身,各种判断在里面。

后来经朋友提示,只用一个数组解决,在数组里装字典,字典里有lable要显示的数据,也存储textField要存储的数据,这样处理起来就方便多了,因为删除一个cell时数组就好办多了,这样写的代码清晰明了,可复用性也强。

NSMutableArray *array = [[NSMutableArray
alloc]
initWithObjects:@"出发城市:",@"目的城市:",

@"出发日期:",@"旅客姓名:",@"证件号码:",@"配送地址:",nil];

NSMutableArray *dataArr = [[NSMutableArray
alloc]
initWithCapacity:0];

for(int i =
0; i < [array count]; i++)
{

NSMutableDictionary *tmpdic = [[NSMutableDictionary
alloc]
initWithCapacity:0];
[tmpdic
setObject:[array objectAtIndex:i]
forKey:@"labelText"];
[tmpdic
setObject:@""
forKey:@"textFieldText"];
[dataArr
addObject:tmpdic];
[tmpdic
release];
}

self.fieldLables = dataArr;
[array
release];
[dataArr
release];
然后用tempValues用来随时取出数组里的字典,然后利用字典去取值。
当然里面还涉及到一些其它的要点,都是以后做东西会遇到的问题,但是这个点让我印象很深刻!这可能刚开始做的时候感觉两种都行,然而随着后面要处理的数据时,才发现后面一种会简单很多,这可能就是所谓的布局的问题了吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: