Cell点击改变高度

点击改变cell的高度,先看效果


Cell点击改变高度_第1张图片
clickCell.gif

其实核心代码就两行,把它写在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];
}

你可能感兴趣的:(Cell点击改变高度)