public virtual void reloadData() { for (int i = 0; i < cellsUsed.Count; i++) { LTableViewCell cell = cellsUsed[i]; cellsFreed.Add(cell); //cell.node.transform.SetParent(null); cell.node.SetActive(false); cell.reset(); } Transform tran = transform.Find("container/cell_tpl"); if (tran != null) { tran.gameObject.SetActive(false); } cellsUsed.Clear(); indices.Clear(); positions.Clear(); updatePositions(); setContentOffsetToTop(); onScrolling(); relocateContainer(); }
public virtual void reloadData() { for (int i = 0; i < cellsUsed.Count; i++) { LTableViewCell cell = cellsUsed[i]; cellsFreed.Add(cell); cell.node.transform.SetParent(null); cell.reset(); } cellsUsed.Clear(); indices.Clear(); positions.Clear(); updatePositions(); setContentOffsetToTop(); onScrolling(); relocateContainer(); }
protected override void onScrolling() { if (cellsCount == 0) { return; } int beginIdx = 0, endIdx = 0; beginIdx = cellBeginIndexFromOffset(getContentOffset()); endIdx = cellEndIndexFromOffset(getContentOffset()); while (cellsUsed.Count > 0) { LTableViewCell cell = cellsUsed[0]; int idx = cell.idx; if (idx < beginIdx) { indices.Remove(idx); cellsUsed.Remove(cell); cellsFreed.Add(cell); cell.reset(); cell.node.transform.SetParent(null); } else { break; } } while (cellsUsed.Count > 0) { LTableViewCell cell = cellsUsed[cellsUsed.Count - 1]; int idx = cell.idx; if (idx > endIdx && idx < cellsCount) { indices.Remove(idx); cellsUsed.RemoveAt(cellsUsed.Count - 1); cellsFreed.Add(cell); cell.reset(); cell.node.transform.SetParent(null); } else { break; } } for (int idx = beginIdx; idx <= endIdx && idx < cellsCount; ++idx) { if (indices.ContainsKey(idx)) { continue; } updateCellAtIndex(idx); } base.onScrolling(); }