通過(guò)改變要隱藏的item的高度實(shí)現(xiàn)隱藏和顯示item
1.創(chuàng)建UITableView
#import "ViewController.h"@interface ViewController ()@PRoperty(nonatomic, strong)UITableView *tableView;@property(nonatomic, assign)BOOL isHiddenItem;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.isHiddenItem = NO; self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; self.tableView.delegate = self; self.tableView.dataSource = self; [self.view addSubview:self.tableView];}
2.UITableView delegate, 具體的實(shí)現(xiàn)方法都已經(jīng)加了注釋
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { // 把要隱藏的item的高度設(shè)置為0 if (indexPath.row == 2 && self.isHiddenItem) { return 0; } return 100;}-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 5;}-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; } if (indexPath.row == 0) { cell.textLabel.text = @"點(diǎn)擊0行的時(shí)候隱藏第2行"; } else if(indexPath.row ==1) { cell.textLabel.text = @"點(diǎn)擊1行的時(shí)候顯示第2行"; } else { cell.textLabel.text = [NSString stringWithFormat:@"當(dāng)前行數(shù)%ld",indexPath.row]; } return cell;}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 0) { // 標(biāo)示是否被隱藏 self.isHiddenItem = YES; // 獲取要隱藏item的位置 NSIndexPath *tmpPath = [NSIndexPath indexPathForRow:indexPath.row + 2 inSection:indexPath.section]; [UIView animateWithDuration:0.3 animations:^{ [self.tableView cellForRowAtIndexPath:tmpPath].alpha = 0.0f; } completion:^(BOOL finished) { // 隱藏的對(duì)應(yīng)item [[self.tableView cellForRowAtIndexPath:tmpPath] setHidden:YES]; // 刷新被隱藏的item [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:tmpPath] withRowAnimation:UITableViewRowAnimationFade]; }]; NSLog(@"點(diǎn)擊了第0行"); } else if (indexPath.row == 1){ self.isHiddenItem = NO; NSIndexPath *tmpPath = [NSIndexPath indexPathForRow:indexPath.row + 2 inSection:indexPath.section]; [UIView animateWithDuration:0.3 animations:^{ [self.tableView cellForRowAtIndexPath:tmpPath].alpha = 1.0f; } completion:^(BOOL finished) { [[self.tableView cellForRowAtIndexPath:tmpPath] setHidden:YES]; [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:tmpPath] withRowAnimation:UITableViewRowAnimationFade]; }]; NSLog(@"點(diǎn)擊了第1行"); }}
3.效果

如果你不是在wb145230博客園看到本文,請(qǐng)點(diǎn)擊查看原文.
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注