Подтвердить что ты не робот

UITableView установить цвет фона

Я меняю цвет фона UITableViewCells в методе tableView: cellForRowAtIndexPath

    if(indexPath.row % 2 == 0){
        cell.backgroundColor = ...
    } else{
        cell.backgroundColor = ...
    }

Но это только изменит цвет ячейки, указанный в таблицеView: numberOfRowsInSection (Как видно на прикрепленном рисунке, белые ячейки после первых четырех)

Можно ли изменить цвет всех ячеек, отображаемых на экране?

enter image description here

4b9b3361

Ответ 1

Если вы хотите, чтобы цвет фона ячейки продолжал чередоваться, вам нужно лгать о том, сколько строк находится в таблице. В частности, в tableView: numberOfRowsInSection вам нужно всегда возвращать число, которое заполняет экран, а в tableView: cellForRowAtIndexPath возвращает пустую ячейку для строк, которые находятся за пределами таблицы. Следующий код демонстрирует, как это сделать, предполагая, что self.dataArray является NSArray из NSStrings.

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if ( self.dataArray.count < 10 )
        return( 10 );
    else
        return( self.dataArray.count );
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleCell"];

    if ( indexPath.row % 2 == 0 )
        cell.backgroundColor = [UIColor orangeColor];
    else
        cell.backgroundColor = [UIColor redColor];

    if ( indexPath.row < self.dataArray.count )
        cell.textLabel.text = self.dataArray[indexPath.row];
    else
        cell.textLabel.text = nil;

    return cell;
}

Ответ 2

  • Открытая раскадровка
  • Выберите свой UITableView
  • Инспектор открытых атрибутов
  • Прокрутите к группе Просмотр
  • Выберите цвет фона для всей таблицы.

enter image description here

Ответ 3

Попробуйте следующее: -

UIColor *yourColor = [UIColor blueColor];
self.tableView.backgroundColor = yourColor ;
self.tableView.backgroundView.backgroundColor = yourColor ;

Ответ 4

Вам нужно установить tableview backgroundView на nil и его backgroundColor на нужный цвет.

Ответ 5

В быстром, вы можете изменить цвет фона таблицы, или вы можете установить изображение в цвет фона таблицы таким образом:

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png")!)
    self.tableView.backgroundColor = UIColor.clearColor()
}


//    change cell text color and background color
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        cell.backgroundColor = UIColor.clearColor()
}

Ответ 6

Я использовал это для окраски альтернативной ячейки в виде таблицы

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell,
    forRowAtIndexPath indexPath: NSIndexPath) {

        if (indexPath.row % 2 == 0)
        {
            cell.backgroundColor = UIColor.grayColor()
        }
        else
        {
            cell.backgroundColor = UIColor.whiteColor()
        }
}

Ответ 7

Для SWIFT

Благодаря @Irshad Qureshi мне удалось получить чередующиеся цвета фона для моих прототипов, добавив следующее в мой cellForRowAtIndexPath:

if (indexPath.row % 2 == 0)
    {
        cell!.backgroundColor = UIColor.groupTableViewBackgroundColor()
    }
    else
    {
        cell!.backgroundColor = UIColor.whiteColor()
    }