我的数据源数组中有一些虚拟对象。使用自动布局给表格视图单元赋予0高度
我不想在屏幕上显示它们。我也无法从数据源数组中删除它们。
我正在使用适当的约束来获取动态单元格高度。
有没有一种方法可以显示单元格0高度这些虚拟物体使用的是AutoLayout
?
我的数据源数组中有一些虚拟对象。使用自动布局给表格视图单元赋予0高度
我不想在屏幕上显示它们。我也无法从数据源数组中删除它们。
我正在使用适当的约束来获取动态单元格高度。
有没有一种方法可以显示单元格0高度这些虚拟物体使用的是AutoLayout
?
而不是制作一个单元格高度= 0,你应该考虑如何不显示该单元格。
如果你不能没有将假数据复制你的数据源(因为太大了,也许?)
这是顺便说一下最简单的方法。
然后,你应该建立一个函数,可以给你一个索引的正确数据。
例如:
如果你有[data1, dummy, data2, dummy, data3, data4]
如果你问数据源的第二个元素,它应该如果你问的数据源的第四个元素回应data2
,它应该回应data4
当然,您还需要一个功能,可以为您提供数据的正确length
没有你所有的虚拟数据。
就用在适当的地方这个功能(例如):
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return numberOfActualDataItems(datasource)
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = //Obtain your reusable cell
let item = actualDataItemIndex(indexPath.row)
//configureCell will be the function were you place your data to view
self.configureCell(cell, item)
return cell
}
不符合我的要求。我根本无法调整数据源数组。我必须在正确的数组索引处具有所有数据,因为我已将大部分单元格索引与数组索引关联,以便在我的代码中进一步使用逻辑。 –
你可以随时引用这个函数,你可以把它们放在数据源的抽象层上。在需要时使用它们。 –
@SwappyDwappy如果您的数据处于您无法以任何方式更改它或它会破坏应用程序**的地步,那么您需要更改数据模型,因为它已损坏。这个答案是一个完美的(也是非常容易的)解决方案,可以做你想做的事。 – Fogmeister
这是工作,到目前为止,虽然我没有想重写heightForRowAtIndexPath :(
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
SomeObjectClass *object = [dataSourceArray objectAtIndex:indexPath.row];
if (object.objectType == DummyDataType) {
return 0;
}
return UITableViewAutomaticDimension;
}
如果没有这些元素,或者在运行时决定哪个单元格没有分配,并且没有为虚拟数据添加单元格,您有什么理由不能复制数据源? –
why你是否通过过滤删除虚拟数据?根本没有意义。 – holex