@@ -35,38 +35,12 @@ - (id)initWithFrame:(CGRect)frame index:(NSInteger)index listArray:(NSArray *)li
3535
3636 self.listItems = [listItems mutableCopy ];
3737
38- self.tableView = [[TrelloListTableView alloc ]initWithFrame:CGRectMake (0 .0f , 0 .0f , ScreenWidth - 60 .0f , self .height) style: UITableViewStylePlain listItem: [listItems objectAtIndex: 0 ]];
39-
40- // 注:这里高度加30是随便加的,高度会在往上滑动的过程中修复
41-
42- // 注:换成grouped效果也不错 = =
43-
44- _tableView.tag = 10001 ;
45- _tableView.delegate = self;
46- _tableView.dataSource = self;
47- _tableView.backgroundColor = [UIColor clearColor ];
48- _tableView.layer .cornerRadius = 5 .0f ;
49- _tableView.layer .masksToBounds = YES ;
50- _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
51- _tableView.showsHorizontalScrollIndicator = NO ;
52- _tableView.showsVerticalScrollIndicator = NO ;
53- [self addSubview: _tableView];
54-
55- [self .visibleTableViewArray addObject: _tableView];
56-
57- CGFloat nextX = self.tableView .right + 15 .0f ;
58- for (NSInteger i=1 ;i<5 ;i++)
38+ CGFloat nextX = 0 .0f ;
39+ for (NSInteger i=0 ;i<listItems.count ;i++)
5940 {
6041 TrelloListTableView *t_tableView = [[TrelloListTableView alloc ]initWithFrame:CGRectMake (nextX, 0 .0f , ScreenWidth - 60 .0f , self .height) style: UITableViewStylePlain listItem: [listItems objectAtIndex: i]];
61- t_tableView.tag = 10001 + i;
6242 t_tableView.delegate = self;
6343 t_tableView.dataSource = self;
64- t_tableView.backgroundColor = [UIColor clearColor ];
65- t_tableView.layer .cornerRadius = 5 .0f ;
66- t_tableView.layer .masksToBounds = YES ;
67- t_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
68- t_tableView.showsHorizontalScrollIndicator = NO ;
69- t_tableView.showsVerticalScrollIndicator = NO ;
7044 [self addSubview: t_tableView];
7145 nextX = t_tableView.right + 15 .0f ;
7246
@@ -76,52 +50,83 @@ - (id)initWithFrame:(CGRect)frame index:(NSInteger)index listArray:(NSArray *)li
7650 return self;
7751}
7852
79- - (NSInteger ) tableView : (UITableView *) tableView numberOfRowsInSection : ( NSInteger ) section
53+ - (void ) reloadData
8054{
81- switch (tableView.tag ) {
82- case 10001 :
55+ // still not implement reusable tableview... fuck...
56+ NSInteger currentTableViewNumber = self.visibleTableViewArray .count ;
57+ if (self.listItems .count == currentTableViewNumber)
58+ {
59+ for (NSInteger i=0 ;i<currentTableViewNumber;i++)
8360 {
84- return [(TrelloListTableView *)tableView listItem ].rowNumber ;
61+ TrelloListTableView *t_tableView = (TrelloListTableView *)[self .visibleTableViewArray objectAtIndex: i];
62+ t_tableView.listItem = [self .listItems objectAtIndex: i];
63+ [t_tableView reloadData ];
8564 }
86- break ;
87- default :
65+ }
66+ else if (self.listItems .count < currentTableViewNumber)
67+ {
68+ // if having less boards after reloading, remove the rests and reload the useful ones
69+ self.contentSize = CGSizeMake (self.listItems .count * (ScreenWidth - 45 .0f ), self.height );
70+
71+ NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet ];
72+ for (NSInteger i=0 ;i<currentTableViewNumber;i++)
73+ {
74+ if (i>=self.listItems .count )
75+ {
76+ TrelloListTableView *t_tableView = (TrelloListTableView *)[self .visibleTableViewArray objectAtIndex: i];
77+ [t_tableView removeFromSuperview ];
78+ [indexSet addIndex: i];
79+ }
80+ else
81+ {
82+ TrelloListTableView *t_tableView = (TrelloListTableView *)[self .visibleTableViewArray objectAtIndex: i];
83+ t_tableView.listItem = [self .listItems objectAtIndex: i];
84+ [t_tableView reloadData ];
85+ }
86+ }
87+ [self .visibleTableViewArray removeObjectsAtIndexes: indexSet];
88+ }
89+ else
90+ {
91+ self.contentSize = CGSizeMake (self.listItems .count * (ScreenWidth - 45 .0f ), self.height );
92+
93+ for (NSInteger i=0 ;i<self.listItems .count ;i++)
8894 {
89- return [(TrelloListTableView *)tableView listItem ].rowNumber ;
95+ CGFloat nextX = 0 .0f ;
96+ if (i>=currentTableViewNumber)
97+ {
98+ TrelloListTableView *t_tableView = [[TrelloListTableView alloc ]initWithFrame:CGRectMake (nextX, 0 .0f , ScreenWidth - 60 .0f , self .height) style: UITableViewStylePlain listItem: [self .listItems objectAtIndex: i]];
99+ t_tableView.delegate = self;
100+ t_tableView.dataSource = self;
101+ [self addSubview: t_tableView];
102+
103+ nextX = t_tableView.right + 15 .0f ;
104+ [self .visibleTableViewArray addObject: t_tableView];
105+ }
106+ else
107+ {
108+ TrelloListTableView *t_tableView = (TrelloListTableView *)[self .visibleTableViewArray objectAtIndex: i];
109+ t_tableView.listItem = [self .listItems objectAtIndex: i];
110+ [t_tableView reloadData ];
111+ nextX = t_tableView.right + 15 .0f ;
112+ }
90113 }
91- break ;
92114 }
93115}
94116
117+ - (NSInteger )tableView : (UITableView *)tableView numberOfRowsInSection : (NSInteger )section
118+ {
119+ return [(TrelloListTableView *)tableView listItem ].rowNumber ;
120+ }
121+
95122- (NSInteger )numberOfSectionsInTableView : (UITableView *)tableView
96123{
97- switch (tableView.tag ) {
98- case 10001 :
99- {
100- return 1 ;
101- }
102- break ;
103- default :
104- {
105- return 1 ;
106- }
107- break ;
108- }
124+ return 1 ;
109125}
110126
111127- (CGFloat)tableView : (UITableView *)tableView heightForHeaderInSection : (NSInteger )section
112128{
113- switch (tableView.tag ) {
114- case 10001 :
115- {
116- return 60 .0f ;
117- }
118- break ;
119- default :
120- {
121- return 60 .0f ;
122- }
123- break ;
124- }
129+ return 60 .0f ;
125130}
126131
127132- (nullable UIView *)tableView : (UITableView *)tableView viewForHeaderInSection : (NSInteger )section
0 commit comments