我可以动态获得行数吗? 我正在尝试删除tableView部分标题,我不知道如何...我已经教过一个解决方案是改变部分的数量。
现在我的numberOfSectionsInTableView看起来像:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
和
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
beTribesAppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
switch (section) {
case 0:
return [appDelegate.firstArray count];
case 1:
return [appDelegate.secondArray count];
default:
return 0;
}
}
像这样设置标题部分:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
sectionTitles = [[NSMutableArray alloc] init];
[sectionTitles addObject:@"firstSection"];
[sectionTitles addObject:@"secondSection"];
NSString *sectionText = [sectionTitles objectAtIndex:section];
return sectionText;
}
答案 0 :(得分:6)
我不确定理解这个问题,因为答案似乎微不足道:只需更改实现以返回一些动态值并完成,对吧?
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.nbSections;
}
nbSections
是您要为其分配所需值的属性,因此您可以随时更改它。那么问题是什么呢?
PS:当然,请调用[tableView reloadData]
来重新计算tableView的内容,并明确考虑新值......也许这就是你错过的东西?
答案 1 :(得分:2)
要删除节标题,必须将标题高度设置为0,如此
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
switch (section) {
case 0:
return 0;
default:
return 44;
}
}
此示例将删除第一个部分标题,其他所有标题将设置为44。
答案 2 :(得分:0)
要做的第一件事就是将sectionTitles数组移动到视图控制器上的属性中,并在init方法中初始化它。
然后当你想改变一个部分的标题时改变数组中的值并调用[tableView reloadData]
是否要从tableView或标题中删除整个部分?如果您只想删除标题,请将数组中的项设置为@“”
如果要删除该部分,请从sectionTitles中删除该项,并将numberOfSectionsInTableView方法更改为:
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [sectionTitles count];
}