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

Прозрачный фон в сгруппированном UITableView - iPhone

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

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

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

Before After

4b9b3361

Ответ 1

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

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

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

historyTable.backgroundColor = [UIColor clearColor];

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

Ответ 2

удалить UITableView backgroundView

xxx.backgroundView = nil;

Это необходимо для iPad. Когда компиляция выполняется на iPad и iPhone, проверьте, что tableView отвечает на селектор с...

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

Ответ 3

для меня он работал окончательно после установки как nil/clear:

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

Ответ 4

У меня была эта проблема и выяснилось, что между использованием:

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

и используя:

[UIColor clearColor];

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

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

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

cell.backgroundColor =  [UIColor clearColor];

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