我正在为复杂的UITableView寻找最佳解决方案。
我想要的是:
我有任意数量的部分。
在本节中只有一个静态单元格,然后任意数量的动态单元格。
我的数据存储在一些 NSMutableArray 中,我尝试过这样的想法:
Combine static and prototype content in a table view
但我不知道如何处理它与我的问题。
那么有人可以给我一个暗示或最佳实践吗?
更新:1
http://jsfiddle.net/konstheinrich188/HKkA8/小提琴显示我的数据看起来如何以及我尝试做什么
这张照片显示了我想如何编写我的tableview ...
答案 0 :(得分:1)
当您使用术语“静态”时,您真的在谈论“uitableview静态单元格”,或者更确切地说是“具有静态内容的单元格”吗? 如果是前者;你为什么需要那个? 如果是后者;如何在每个部分测试这是否是该部分中的第一个单元格,然后呈现静态内容?对于所有其他单元格,显示动态内容:
if (indexPath.row == 0) {
// First row in section. Display static content
...
} else {
// Display dynamic content
...
}
您需要静电电池的目的是什么?
答案 1 :(得分:1)
所以经过一段时间和一些测试,听取你的想法和技术,我解决了我的问题!
这是一个小代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [mappedSprints count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
UISprint*s = [mappedSprints objectAtIndex:section];
return s._name;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
UISprint* s = [mappedSprints objectAtIndex:section];
return [s.internalUserStorey count] + [s.externalUserStorey count] + 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
return 130;
}
return 80;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell%d%d", indexPath.row, indexPath.section]];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Cell%d%d", indexPath.row, indexPath.section]];
}
UISprint*s = [mappedSprints objectAtIndex:indexPath.section];
if (indexPath.row == 0) {
//Here is my first cell
//cell.textLabel.text =s._name;
}
else if(indexPath.row >= 0 && indexPath.row<=[s.internalUserStorey count]){
//here are the cells for SubItem
}
else if(indexPath.row >= [s.internalUserStorey count]){
//here are the cells for SubItem 2
}
return cell;
谢谢大家!
康斯坦丁最佳
答案 2 :(得分:-1)
您可以使用一个NSMuatableArray并在其上添加引用,即
NSMuatableArray *arr=[NSMuatableArray alloc]init];
//section no 1
[arr addObject:@"2"];
//section no 2
[arr addObject:@"1"];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
switch(arr objectAtIndex[indexPath.row])
{
}
}
您可以通过使用您想要设置单元格的引用来使用这种方式。