1

我创建了一个完全由四个不同分组组成的 UITableView。每个部分/组具有不同数量的行。我已经为底部的三组静态添加了必要数量的行和文本字段。但是,我不知道顶部/组需要多少行。我已将顶部组设置为在 .xib 中只有一个单元格,但每次加载视图时,我都必须检查需要多少个单元格,然后将必要的行数动态添加到顶部。

我环顾了 StackOverflow,看到人们在讨论 insertRowsAtIndexPaths 方法,但我无法让它工作。

[settingsPageTableView beginUpdates];
[settingsPageTableView insertRowsAtIndexPaths:tempArray withRowAnimation:UITableViewRowAnimationAutomatic];
[settingsPageTableView endUpdates];

我是否需要在 insertRowsAtIndexPaths 方法中添加一些特定的代码?我这样传递了一个 NSMutableArray:

 NSIndexPath *indexPath0 = [NSIndexPath indexPathForRow:1 inSection:0];
    NSMutableArray *tempArray=[NSMutableArray array];
   [tempArray addObject:indexPath0];

如果有人知道如何在一个 UITableView 中组合静态和动态单元格,将不胜感激!对于熟悉 iPhone 常规设置中的蓝牙页面的任何人来说,这正是我想要做的。它显示了可变数量的设备以及顶部包含 UISwitch 的静态单元格。有谁知道如何做到这一点?

非常感谢!

4

3 回答 3

3

我认为你应该动态地做这一切,仅仅因为你在蓝牙页面上描述的单元格总是在那里并不意味着它是一个静态单元格,只是总是动态创建的。

于 2012-07-27T00:08:45.267 回答
2

So here's the workaround I just figured out. I know for sure there will never be more than 7 cells that I would ever need for that top portion of the UITable View. So then, I am able to just set up those 7 statically in the .xib file. From there I am able to only show the specific number that I need using this:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {


    switch(section) {
        case 0:  
            //Do a bunch of checking here on how many i actually need. Then, I will just return the required amount. As long as it is less than the number of cells I have statically placed in my .xib, everything works good.
            return 4;
        case 1:
            return 3;
        case 2:
            return 1;
        case 3:
            return 2;
        case 4:
            return 3;
        default:
            return 0;
        }
//Every case but the first always needs the same amount of cells, so those are no problem.
}
于 2012-07-27T00:27:11.307 回答
1

最好和最简单的方法:

1)将容器视图放在动态表视图的标题中 2)将静态表视图分配给此容器并取消勾选“启用滚动”

于 2014-02-04T05:35:05.683 回答