0

我想创建包含 10 个元素的 UItableView。但是,它创建 9(因为它是可见的)并且在该行可见时创建了 10-th,现在 1 个元素被销毁(第一个元素)。

使用这种方法我有一个问题,我想创建所有 10 行并不重要它是否可见,当行可见时只显示它。

只有当我调用重新加载表时才会重新创建这些行。

这可能吗?

谢谢。

4

1 回答 1

0
  • 在重新加载之前创建您的单元格,
  • 将它们存储在某个数组中,
  • tableView:cellForRowAtIndexPath:作为来自该数组的返回单元格,
  • 如果要重新创建它们,只需清空已创建单元格的数组,再次创建它们并调用 reload table

像这样的东西...

@property (nonatomic,strong) NSArray *myCells;

...

- (NSArray *)myCells {
  if ( _myCells ) {
    return _myCells;
  }

  _myCells = [NSMutableArray array];

  UITableViewCell *cell = [[UITableViewCell alloc] init...];
  [_myCells addObject:cell];

  ...

  return _myCells;
}

- (void)reloadMyTable {
  self.myCells = nil;
  [self.tableView reloadData];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  return self.myCells.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  return self.myCells[indexPath.row];
}
于 2012-09-12T12:12:14.067 回答