uitableviewcell чередование цветов фоновых ячеек даже для ячеек без данных

#iphone #objective-c #ios #uitableview

#iPhone #objective-c #iOS #uitableview

Вопрос:

Я знаю, как установить чередующиеся цвета для tableviewcell, но как я могу настроить все видимые строки на чередующийся цвет? Например, прямо сейчас, если у меня есть только 2 ячейки с данными, только 2 ячейки будут иметь цвета фона — как мне также заполнить фоны пустых ячеек?

Ответ №1:

попробуйте сделать что-то вроде этого: (a) добавьте только необходимое количество фиктивных строк — (NSInteger)TableView:(UITableView *)TableView numberOfRowsInSection:(NSInteger)раздел {

 if ([UIAppDelegate.getwaitlistArray count]>=numberOfVisibleRowsOnYourScreen) {
    return [UIAppDelegate.getwaitlistArray count];
}
else{
    return ([UIAppDelegate.getwaitlistArray count]   numberOfVisibleRowsOnYourScreen - [UIAppDelegate.getwaitlistArray count]);
}
  

}
(b) Чередуйте свою ячейку:

 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
//alternating cell back ground color
if (indexPath.row%2 == 0) {

    [cell setBackgroundColor:[UIColor colorWithRed:237.0/255.0f green:237.0/255.0f blue:237.0/255.0f alpha:1.0f]];
}else
{

    [cell setBackgroundColor:[UIColor colorWithRed:247.0/255.0f green:247.0/255.0f blue:247.0/255.0f alpha:1.0f]];
}
  

}

(c)в cellForRowAtIndexPath:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyIdentifier"] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
//Create your lables/buttons/text/image
nameLabel.test=@"Whatever";   .....   ...... 
  

……

 if (indexPath.row < [YourArray count]) { Populate your data here in the cells } else { cell.userInteractionEnabled=FALSE; nameLabel.text=@""; } return cell; }
  

Ответ №2:

Добавьте фиктивные ячейки в конец вашего списка.

Комментарии:

1. я могу это сделать, но мне было интересно, есть ли более подходящий способ