0

10個の要素を持つUItableViewを作成したいと思います。ただし、9を作成し(表示されているため)、その行が表示されているときに10番目が作成され、1つの要素が破棄されます(最初の要素)。

このアプローチでは問題があります。10行すべてを作成したいのですが、それが表示されているかどうかは重要ではなく、行が表示されている場合はそれを表示するだけです。

これらの行は、リロードテーブルを呼び出す場合にのみ再作成されます。

これは可能ですか?

ありがとう。

4

1 に答える 1

0
  • リロードする前にセルを作成し、
  • それらをいくつかの配列に格納し、
  • tableView:cellForRowAtIndexPath:この配列からの戻りセルでは、
  • それらを再作成する場合は、すでに作成されたセルを含む配列を空にし、それらを再度作成して、リロードテーブルを呼び出します。

このようなもの ...

@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 に答える