2010-03-07 2 views
20

Я хочу сделать сгруппированный UITableView прозрачным. Я частично преуспел в следующем коде:Прозрачный фон в сгруппированном UITableView - iPhone

UIColor *bgColor = [[UIColor alloc] initWithWhite:1 alpha:0.0]; 
historyTable.backgroundColor = bgColor; 

К сожалению, черные углы появились в закругленных ячейках. Как избавиться от них?

Before http://i49.tinypic.com/2iaa05u.jpg After http://i45.tinypic.com/2cnvckk.jpg

ответ

37

Вместо использования

UIColor *bgColor = [[UIColor alloc] initWithWhite:1 alpha:0.0]; 
historyTable.backgroundColor = bgColor; 

Просто используйте:

historyTable.backgroundColor = [UIColor clearColor]; 

Это также очищает утечку памяти вы создаете.

+1

Большое спасибо. BTW I relese bgColor позже, но спасибо за вашу заботу;). – Jacek

+0

nice one .. только то, что мне нужно сегодня – Scrimmers

+6

Примечание: [UIColor clearColor] должен быть установлен в коде, он не работает, если clearColor установлен в Interface Builder. –

35

удалить UITableView backgroundView

xxx.backgroundView = nil; 

Это необходимо на IPad строит. При компиляции для запуска на IPad и iPhone, проверьте Tableview реагирует на селектор с ...

if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) { 
    [self.tableView setBackgroundView:nil]; 
} 
+0

setBackgroundView: доступен с iOS 3.2 и не закреплен на iPad, не так ли? Почему нужно использовать эту проверку? – adruzh

3

Я имел этот вопрос и обнаружил, что не было никакой разницы между использованием:

[[UIColor alloc] initWithWhite:1 alpha:0.0]; 

и используя :

[UIColor clearColor]; 

Я пробовал оба из них и все еще имел маленькие черные углы на моем столе.

Я также попытался установить backgroundView на нуль, как было предложено, но это тоже не сработало.

Я решил эту проблему путем установки фона отдельных клеток прозрачны в методе cellForRowAtIndexPath:

cell.backgroundColor = [UIColor clearColor]; 

Конечно, это имеет побочный эффект, что сами ваши клетки являются прозрачными, что не является идеальным для все, но это нормально для меня в этом случае.

+0

Его хорошо при использовании сгруппированных таблиц.+1 –

8

для меня он работал, наконец, после установки как всухую/ясно:

[myTableView setBackgroundView:nil]; 
[myTableView setBackgroundColor:[UIColor clearColor]]; 
+0

Не нужно устанавливать цвет фона для очистки после установки фонового изображения на ноль. – Will

+0

в моем случае я должен был это сделать, или я в конечном итоге с белым фоном. но это может быть особый случай. – zero3nna

Смежные вопросы