Я создал собственное представление TableCell, которое заполняется информацией из массива объектов. Каждый TableCell загружается в
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
Cell *cell = (Cell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
NSUInteger row = [indexPath row];
NSDictionary *rowData = (NSDictionary *)[self.surveys objectAtIndex:row];
cell.info1.text = [rowData objectForKey:@"info1"];
cell.info2.text = [rowData objectForKey:@"info2"];
cell.info3.text = [rowData objectForKey:@"info3"];
cell.otherInfo = [rowData objectForKey:@"otherInfo"];
return cell;
}
В дополнение к этому здесь я указываю собственную высоту для ячейки
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 76.0;
}
Когда значение для tableView: heightForRowAtIndexPath: равно 76, оно загружает все ячейки, которые я вижу, и они не являются пустыми. Не изменяя ничего в коде, я могу изменить значение в tableView: heightForRowAtIndexPath: и оно будет показывать только первое значение ячейки при загрузке представления. Когда я прокручиваю вниз, они обновляются со значением, как только их верхний край достигает верхней части экрана. Когда я возвращаюсь к вершине и растягиваю вид, чтобы он отскочил назад, нижние исчезают.
Насколько я могу судить, изменение высоты каким-то образом влияет на то, как они загружаются, но я не могу понять, как это происходит.