博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TableView下拉cell
阅读量:4610 次
发布时间:2019-06-09

本文共 7220 字,大约阅读时间需要 24 分钟。

效果如下:

源码如下:

1 //  2 //  MainViewController.m  3 //  NodeTableView  4 //  5 //  Created by ChenJungang on 14/11/10.  6 //  Copyright (c) 2014年 ChenJungang. All rights reserved.  7 //  8   9 #import "MainViewController.h" 10 #import "MainCell.h" 11  12 #define MAX_Count 55535 13  14  15 @interface MainViewController ()
16 17 @property (strong, nonatomic) UITableView *tableView; 18 @property (strong, nonatomic) NSArray *dataArray; 19 @property (assign, nonatomic) NSInteger rowCount; 20 @property (assign, nonatomic) NSInteger sectionCount; 21 22 @end 23 24 @implementation MainViewController 25 26 - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ 27 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 28 if (self) { 29 // Custom initialization 30 self.rowCount = 0; 31 self.sectionCount = MAX_Count; 32 } 33 return self; 34 } 35 36 - (void)viewDidLoad { 37 [super viewDidLoad]; 38 self.title = @"node tableView"; 39 [self.view addSubview:self.tableView]; 40 } 41 -(NSArray*)dataArray { 42 if (!_dataArray) { 43 self.dataArray = @[@{
@"array": @[@{
@"name":@"11", @"position":@"position1"}, 44 @{
@"name":@"12", @"position":@"position2"}, 45 @{
@"name":@"13", @"position":@"position3"}, 46 @{
@"name":@"14", @"position":@"position4"}, 47 @{
@"name":@"15", @"position":@"position5"}],@"name":@"one", @"position":@"position—one"}, 48 @{
@"array": @[@{
@"name":@"21", @"position":@"position1"}, 49 @{
@"name":@"22", @"position":@"position2"}, 50 @{
@"name":@"23", @"position":@"position3"}, 51 @{
@"name":@"24", @"position":@"position4"}, 52 @{
@"name":@"25", @"position":@"position5"}],@"name":@"two", @"position":@"position—two"}, 53 @{
@"array": @[@{
@"name":@"31", @"position":@"position1"}, 54 @{
@"name":@"32", @"position":@"position2"}, 55 @{
@"name":@"33", @"position":@"position3"}, 56 @{
@"name":@"34", @"position":@"position4"}, 57 @{
@"name":@"35", @"position":@"position5"}],@"name":@"three", @"position":@"position—three"}, 58 @{
@"array": @[@{
@"name":@"41", @"position":@"position1"}, 59 @{
@"name":@"42", @"position":@"position2"}, 60 @{
@"name":@"43", @"position":@"position3"}, 61 @{
@"name":@"44", @"position":@"position4"}, 62 @{
@"name":@"45", @"position":@"position5"}],@"name":@"four", @"position":@"position—four"}, 63 @{
@"array": @[@{
@"name":@"51", @"position":@"position1"}, 64 @{
@"name":@"52", @"position":@"position2"}, 65 @{
@"name":@"53", @"position":@"position3"}, 66 @{
@"name":@"54", @"position":@"position4"}, 67 @{
@"name":@"55", @"position":@"position5"}],@"name":@"five", @"position":@"position—five"}]; 68 } 69 return _dataArray; 70 } 71 - (UITableView *)tableView{ 72 if (!_tableView) { 73 CGRect rect = self.view.bounds; 74 rect.origin.y = 0; 75 rect.size.height = rect.size.height - rect.origin.y; 76 _tableView = [[UITableView alloc]initWithFrame:rect style:UITableViewStylePlain]; 77 _tableView.delegate = self; 78 _tableView.dataSource = self; 79 _tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 80 } 81 return _tableView; 82 } 83 84 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ 85 return self.dataArray.count; 86 } 87 88 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 89 if (_sectionCount != MAX_Count) { 90 if (section == _sectionCount) { 91 return 1 + _rowCount; 92 } 93 return 1; 94 }else{ 95 return 1; 96 } 97 } 98 99 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{100 static NSString *CellId = @"CellId";101 MainCell *cell = [tableView dequeueReusableCellWithIdentifier:CellId];102 if (!cell) {103 cell = [MainCell loadFromXib];104 }105 if (indexPath.row == 0) {106 cell.nameLabel.text = self.dataArray[indexPath.section][@"name"];107 cell.positionLabel.text = self.dataArray[indexPath.section][@"position"];108 }else{109 cell.nameLabel.text = self.dataArray[indexPath.section][@"array"][indexPath.row-1][@"name"];110 cell.positionLabel.text = self.dataArray[indexPath.section][@"array"][indexPath.row-1][@"position"];111 }112 return cell;113 }114 115 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath116 {117 [tableView beginUpdates];118 [tableView deselectRowAtIndexPath:indexPath animated:YES];119 NSUInteger number =[self.dataArray[indexPath.section][@"array"] count];120 if (indexPath.row == 0) {121 if(_sectionCount == MAX_Count){122 _sectionCount = indexPath.section;123 [self addCellwithNumber:number];124 }else if (_sectionCount == indexPath.section) {125 [self removeCellwithNumber:number];126 _sectionCount = MAX_Count;127 }else{128 [self removeCellwithNumber:number];129 _sectionCount = indexPath.section;130 [self addCellwithNumber:number];131 }132 }133 [tableView endUpdates];134 }135 136 -(void)removeCellwithNumber:(NSInteger)number137 {138 for (int i=(int)number; i>=1; i--) {139 --_rowCount;140 [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:i inSection:_sectionCount]]141 withRowAnimation:UITableViewRowAnimationTop];142 }143 144 }145 -(void)addCellwithNumber:(NSInteger)number146 {147 for (int i=1; i<=number; i++) {148 ++_rowCount;149 [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:i inSection:_sectionCount]]150 withRowAnimation:UITableViewRowAnimationTop];151 }152 }153 154 - (void)didReceiveMemoryWarning {155 [super didReceiveMemoryWarning];156 // Dispose of any resources that can be recreated.157 }158 159 @end
View Code

核心代码:

转载于:https://www.cnblogs.com/ablettchen/p/4101287.html

你可能感兴趣的文章
遮罩层原理
查看>>
安装VS2010水晶报表插件
查看>>
PIE SDK矢量数据的投影转换
查看>>
POJ 1636
查看>>
viewport
查看>>
编译LNMP部署动态网站环境
查看>>
为什么给GIT库打TAG不成功
查看>>
android-数据持久化存储之Content Provider
查看>>
【算法】背包问题初探
查看>>
Zigbee组网原理详解
查看>>
spring boot + druid + 封装JdbcTemplate
查看>>
OpenCV GUI基本操作,回调函数,进度条,裁剪图像等
查看>>
SQLCODE和SQLERRM .
查看>>
sql - sum() 和 count() 函数的区别
查看>>
linux mysql 安装(rpm)
查看>>
css类选择器类名覆盖优先级
查看>>
Linux常见命令
查看>>
函数的定义
查看>>
guess
查看>>
bootstrap以及考试复习
查看>>