我有UITableView
的自动填充NSMutableArray
。我需要在故事板中构建的原型中将静态单元格添加到表格的顶部。这样做的正确方法是什么?
当我刚刚将原型添加到故事板编辑器时,它首先覆盖了第一个单元格。重新加载数据后,它最终将显示在其他单元格下。
制作"空间"为此,我制作了可编辑的桌子"使用以下代码 -
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return self.editing ? wOutputArray.count + 1 : wOutputArray.count;
}
现在它并没有涵盖任何细胞,但似乎它没有家。在初始视图中将其加载到表格的顶部,然后在几次刷新之后它最终会回落到表格的底部。
编辑:
我读到你不能将静态细胞与动态细胞混合,并且表格应该分成几个部分。
所以我在这里改变了 -
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableViewB{
return 2;
}
&安培;
- (NSInteger)tableView:(UITableView *)tableViewB numberOfRowsInSection:(NSInteger)section{
switch(section){
case 0:
return 1;
break;
case 1:
return wOutputArray.count;
break;
}
return 0;
}
但我不确定下一步该做什么......这是正确的方向吗?
答案 0 :(得分:1)
从技术上讲,您要使用的两种类型的单元格都是原型单元格 - 它们只是不同类型的单元格。
如果您只想在其他人的顶部放置一个静态单元格,那么您需要做的只是在表数据源方法中考虑它。
首先让tableview知道会有1+(动态细胞计数)细胞
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return wOutputArray.count + 1
}
其次,在cellForRowAtIndexPath
中返回适当的单元格,说明indexPath.row将比数组元素多1(因为第0行是静态单元格)
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var cell
if (indexPath.row==0) {
cell=tableView.dequeueReuseableCellWithIdentifier("staticCell",forIndexPath:indexPath)
// Any other manipulation as required
}
else {
cell=tableView.dequeueReuseableCellWithIdentifier("dynamicCell",forIndexPath:indexPath)
cell.label.text=wOutputArray[indexPath.row-1]; // Or whatever property you want to use
}
return cell!
}