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

Внешний вид фона iOS 8 UITableView

Xcode 6 beta 6, пытаясь изменить все цвета фона UITableView в прокси-объекте внешнего вида:

[[UITableView appearance] setBackgroundColor:[UIColor redColor]]

Но похоже, что он не работает.

Шаги для воспроизведения:

1 Создать проект с одним представлением

2 Добавьте UITableView в ViewController в раскадровку

3 Установите делегаты для просмотра контроллера и изменения фона в IB:

enter image description here

4 Добавьте динамическую ячейку и настройте источник данных:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
  return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  return 2;
}

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

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  return 60.f;
}

5 В делегате приложения:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // Override point for customization after application launch.
  [[UITableView appearance] setBackgroundColor:[UIColor redColor]];

  return YES;
}

6 Запустите приложение и посмотрите неправильный цвет:

enter image description here

Любые предложения по его исправлению? Установка цвета фона для каждой таблицы не похожа на хорошее решение.

4b9b3361

Ответ 1

попробуйте "reset" BackgroundColor на "Default" в InterfaceBuilder (даже если его уже по умолчанию, вы увидите небольшое изменение цвета)

это не работает с табличным представлением сгруппированным стилем

UPDATE:

это сработало для меня

[[UIScrollView appearance] setBackgroundColor:[UIColor redColor]];

Ответ 2

Очистить цвет для TableViewCell, не работающего в Tablet в XCode 6. Для меня решает следующее обходное решение.

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

     cell.backgroundColor = [UIColor redColor];
}

Ответ 3

Похоже, что для iOS 8, по крайней мере для наших обстоятельств, когда мы устанавливаем цвет фона представления с таблицей в этом представлении, мы должны явно устанавливать цвета фона таблицы и ячейки в Clear для того, чтобы желаемый цвет отображался на экране. Я полагаю, что с предыдущими версиями iOS ячейки были дефолты прозрачными, но это уже не так.

Ответ 4

Установите цвет фона ячейки в прозрачный Tableview: willDisplayCell: forRowAtIndexPath:

Ответ 5

[UITableVIew backgroundColor] не отмечен UI_APPEARANCE_SELECTOR. Прокси-серверы видятся только в том случае, если селектор отмечен знаком UI_APPEARANCE_SELECTOR.

Ответ 6

Кажется, что прокси-сервер внешнего вида демонстрирует, по-видимому, неподтвержденную ошибку в iOS 8.0.x; он не связан с изменением iOS 7, включающим цвет фона по умолчанию для ячеек таблицы.

Относительная хорошая новость заключается в том, что это только проблема между iOS 8.0 и 8.0.2, потому что:

  • Мой iPhone 4S на 7.1.2 не имеет этой проблемы,
  • У моего коллеги iPhone 6, работающего под управлением 8.1, нет этой проблемы.

До тех пор, пока большинство пользователей не будет обновлено, вам нужно будет установить фон явно на самом объекте, отправив нас обратно в эпоху до появления: (