本文主要是介绍IOS 之 UITableView 实现点击展开裂缝效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原理是在点击单元格的时候给cell添加一个view蓝色的是新添加的视图
来看代码
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{NSInteger section = [indexPath section];NSInteger row = [indexPath row];NSString *key = [self.key objectAtIndex:section];NSArray *vales = [self.name objectForKey:key];UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:TableIdentifier];if ( tableView.tag == 1) {cell.textLabel.text = [vales objectAtIndex:row];}else{cell.textLabel.text = [filervale objectAtIndex:row];}UIView *mainView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tabview.bounds.size.width, 55)];mainView.layer.backgroundColor = [UIColor colorWithRed:233/255.0 green:0/255.0 blue:0/255.0 alpha:1].CGColor;mainView.layer.borderColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:0/255.0 alpha:1].CGColor;mainView.layer.borderWidth = 0.5;mainView.layer.masksToBounds = YES;[cell addSubview:mainView];return cell;
}
这里添加一个手势,就是点击cell时触发
-(void)addGestureRecognizerForView:(UITableViewCell*)cell action:(SEL)action
{UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:action];[cell addGestureRecognizer:gesture];
}- (void)tableViewTouchInView:(UITapGestureRecognizer *)gesture
{UITableViewCell *cell = (UITableViewCell*)gesture.view;NSIndexPath *indexpath = [self.tabview indexPathForCell:cell];if ( self.selectRow == indexpath.row ) {self.selectRow = -1;}elseself.selectRow = indexpath.row;NSArray *array = [NSArray arrayWithObject:indexpath];[self.tabview reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationAutomatic];
}
这里是即将显示时判断是否是选中的那行如果是添加视图并设置高度
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{[self addGestureRecognizerForView:cell action:@selector(tableViewTouchInView:)];if ( self.selectRow == indexPath.row ) {self.ExpandView.frame = CGRectMake(0, 55, self.tabview.bounds.size.width, 55);[cell addSubview:self.ExpandView];}
}-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{if ( self.selectRow == indexPath.row ) {return 110;}elsereturn 56;
}
这篇关于IOS 之 UITableView 实现点击展开裂缝效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!