Как изменить цвет фона выбранной раскадровки статической ячейки - PullRequest
6 голосов
/ 13 января 2012

У меня есть приложение с раскадровкой.В одной сцене у меня есть таблица со статическим содержимым ячейки.Можно ли изменить выбранный цвет фона на другой цвет из параметров по умолчанию (синий и серый)?

Я знаю, могу ли я изменить цвет фона ячейки в forRowAtIndexPath, но в этом случае у меня нет никакой функции источника данныхиз таблицы.Я уверен, что это возможно из IB или другой функции, которую я могу изменить ...

Заранее спасибо!

Ответы [ 3 ]

18 голосов
/ 21 сентября 2012

Вам не нужно писать ни единой строки кода, чтобы выполнить это.Вы можете сделать все это с помощью раскадровки.Просто сделайте это:

  1. Добавьте UIView к вашему UITableViewCell и свяжите его со свойством selectedBackgroundView ячейки (чтобы найти это свойство, вам нужно будет перетащить строку из"New Reference Outlet" и отпустите его над желаемым UITableViewCell)
  2. Измените цвет UIView на нужный цвет выбранного состояния

Вы можете сделать то же самоесо свойством backgroundView.Кроме того, вы можете использовать UIImageView для использования изображения вместо одноцветного фона UIView.

Вот пример файла, использующего пользовательский UIViewController вместо UITableViewController, но он работает наоба: http://uxp.com.br/downloads/CustomCell.zip

8 голосов
/ 23 апреля 2012

У меня была такая же проблема.Решение состоит из двух частей:

1) получение клеток, посмотрите на this .2) изменение цвета фона: вы должны создать UIView с нужным цветом фона и установить его в качестве selectedBackgroundView ячейки

Например, я использовал этот код в viewDidLoad uitableviewcontroller:

UIView *backgroundSelectedCell = [[UIView alloc] init];
[backgroundSelectedCell setBackgroundColor:[UIColor colorWithRed:130/256.0 green:169/256.0 blue:171/256.0 alpha:1.0]];

for (int section = 0; section < [self.tableView numberOfSections]; section++)
    for (int row = 0; row < [self.tableView numberOfRowsInSection:section]; row++)
    {
        NSIndexPath* cellPath = [NSIndexPath indexPathForRow:row inSection:section];
        UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:cellPath];

        [cell setSelectedBackgroundView:backgroundSelectedCell];
    }  
0 голосов
/ 15 мая 2014

Вот решение для тех из нас, кто использует Auto-Layout на X-Code 5 + ...

Для статических ячеек вы можете изменить цвет фона, но он не будет работать. Однако каждая отдельная ячейка автоматически будет иметь представление содержимого внутри нее в IB. Если мы изменим фон этого представления содержимого, он изменит фон ячейки.

Просто кое-что добавить к ответу @Leandro Alves, поэтому нам не нужно перетаскивать дополнительные UIViews в наш проект!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...