这个还是最开始进入到iOS行业中的代码之前写的完全不能看,只是简单记载一下。偶尔翻到,更新一下吧。
之前可能写起来感觉好麻烦,现在回想一下感觉写的好弱智。。
但是毕竟是当初第一次项目中总结出来的代码,又不舍得删,留个纪念吧。。。
功能的话就只是一个简单的利用键值来取Cell高度进行隐藏或者显示的功能
定义
@interface ViewController(){
NSMutableArray* list;
NSMutableDictionary* dic1;
NSMutableDictionary* dic2;
NSMutableDictionary* sallDic;
}
@end
之前项目需求做多语言版本所以就加上了NSLocalizedString
初始化值
- (void)viewDidLoad
{
[superviewDidLoad];
dic1= [[NSMutableDictionary alloc]init];
dic2= [[NSMutableDictionary alloc]init];
[dic1 setObject:NSLocalizedString(@"cent_cheliangbaoyang",@"车辆保养")forKey:@"name"];
[dic1 setObject:NSLocalizedString(@"cent_baoyangriqi",@"距保养过期里程:")forKey:@"one"];
[dic1 setObject:NSLocalizedString(@"cent_weiquandianhua",@"维修电话:")forKey:@"two"];
[dic2 setObject:NSLocalizedString(@"cent_baoxianzixun",@"保险咨询")forKey:@"name"];
[dic2 setObject:NSLocalizedString(@"cent_baoxiuriqi",@"车辆保修期剩余时间:已超过0")forKey:@"one"];
[dic2 setObject:NSLocalizedString(@"cent_nianshengriqi",@"车辆年审期剩余时间:已超过0")forKey:@"two"];
list= [[NSMutableArrayalloc]init];
[list addObject:dic1];
[list addObject:dic2];
alldic= [[NSMutableDictionaryalloc]init];
}
cell个数
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
return list.count;
}
生成Cell
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
*****添加Cell
//在自定义Cell里面添加一个显示和隐藏的方法。
//当初有点ZZ 没有把这里面的方法贴出来
return cell;
}
根据保存的值进行取高度
-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
NSString* name = [[list objectAtIndex:indexPath.row]objectForKey:@"name"];
return[[[lsallDic objectForKey:name]objectForKey:@"KEY"]isEqualToString:@"YES"]?100:50;
}
将allDic里面的值做变化,将@“key”的值进行改变,刷新当前行
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
NSString* name = [[list objectAtIndex:indexPath.row]objectForKey:@"name"];
if([allDic objectForKey:name]==nil) {
NSMutableDictionary*seldic = [[NSMutableDictionaryalloc]init];
[seldic setObject:@"1"forKey:@"KEY"];
[seldic setObject:@"NO"forKey:name];
[alldic setObject:seldicforKey:name];
}
if([[[alldic objectForKey:name] objectForKey:@"KEY"] isEqualToString:@"YES"]) {
[[alldic objectForKey:name] setObject:@"NO"forKey:@"KEY"];
}else{
[[listisalldicobjectForKey:name]setObject:@"YES"forKey:@"KEY"];
}
[tableView reloadRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
}