點(diǎn)擊改變cell的高度,先看效果
其實(shí)核心代碼就兩行,把它寫在didSelectRowAtIndexPath方法里就成
[self.tableView beginUpdates];
[self.tableView endUpdates];
下面請看我的代碼
#import "FFTableViewController.h"
@interface FFTableViewController ()
// Record the indexPath row of clicks
@property (nonatomic,assign) NSInteger selectedIndex;
@end
@implementation FFTableViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 20;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *const ID = @"cell";
UITableViewCell *cell = [ tableView dequeueReusableCellWithIdentifier :ID];
if (cell == nil) {
cell = [[ UITableViewCell alloc]initWithStyle :UITableViewCellStyleDefault reuseIdentifier :ID ];
cell.textLabel.text = @"Jeffin";
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if (self.selectedIndex - 100 == indexPath.row ) {
return 120;
}else{
return 40;
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (self.selectedIndex - 100 == indexPath.row) {
self.selectedIndex = 0;
}else{
self.selectedIndex = 100 + indexPath.row;
}
// This is where magic happens...
[self.tableView beginUpdates];
[self.tableView endUpdates];
}