Я понимаю, что iOS 7 официально не выпущена, и мы не должны обсуждать это, НО я схожу с ума, пытаясь разобраться в этой проблеме. В iOS 6 мой вид таблицы был прозрачным и отлично выглядел. Первый раз запускаю iOS 7, а фон белый.
Я попытался сделать таблицу backgroundColor, цветом ячейки и т.д. UIColor clearColor, но без изменений.
Как исправить эту проблему?
ios
uitableview
Тедди13
источник
источник
backgroundView
поставить на стол чистый?Ответы:
// Fix for iOS 7 to clear backgroundColor cell.backgroundColor = [UIColor clearColor]; cell.backgroundView = [[UIView new] autorelease]; cell.selectedBackgroundView = [[UIView new] autorelease];
в cellForRowAtIndexPath
Кроме того, убедитесь, что ваше tableview действительно имеет прозрачный фон (в раскадровке):
источник
Положи это:
cell.backgroundColor = [UIColor clearColor];
В этой секции:
источник
backgroundView
пустой вид, но этот дополнительный код необходим для iOS 7.Попробуйте сначала установить для backgroundView значение nil.
[self.tableView setBackgroundView:nil]; [self.tableView setBackgroundColor:[UIColor clearColor]];
Не уверен, является ли это изменение в документации с iOS7 или всегда было там и просто не влияло на цвет фона, но согласно справочнику класса UITableView @property backgroundView
«Вы должны установить для этого свойства значение nil, чтобы установить цвет фона представления таблицы».
edit: исправлен синтаксис кода
источник
На это был дан ответ, но во многих отношениях неверно.
Вам необходимо реализовать следующий метод делегата:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell setBackgroundColor:[UIColor clearColor]]; }
Вы не можете поместить исправление в cellForRowAtIndexPath, потому что это происходит после рендеринга ячейки, и он будет мигать белым фоном, прежде чем фон станет чистым (на более медленных устройствах).
Используйте этот метод делегирования, и ваши проблемы будут решены!
источник
На самом деле официально правильное место для изменения цвета фона ячейки отличается в соответствии с документацией ( ссылка на класс UITableViewCell ):
источник
быстрые 3, 4 и 5
cell.backgroundColor = UIColor.clear
источник
Это довольно неприятная проблема. Вот мое текущее решение:
Добавьте это в свой
UITableViewCell
подкласс.- (void)didMoveToSuperview { [super didMoveToSuperview]; self.backgroundColor = [UIColor clearColor]; }
источник
Это сработало для меня в iOS7 +:
self.tableView.backgroundColor =[UIColor blueColor]; self.tableView.opaque = NO; self.tableView.backgroundView = nil;`
а затем в
cellForRowAtIndexPath:
cell.backgroundColor = [UIColor clearColor];
источник
попробуйте этот фрагмент кода
cell.contentView.backgroundColor = [UIColor clearColor]; cell.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.5];
источник
Это сработало для меня только тогда, когда я отредактировал четкий цвет фона для каждой ячейки и четкий цвет для самой таблицы .. ОБЕ ПРОГРАММНО
чтобы установить четкий цвет для таблицы:
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. initMenu() myTableView.backgroundColor = UIColor.clearColor() }
чтобы установить цвет ячеек:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("tablecellid", forIndexPath: indexPath) cell.backgroundColor = UIColor.clearColor() return cell }
источник
Одно приятно. Цвет UITable по умолчанию кажется белым (я не знаю почему)
Но лучше это изменить.
источник
Первый набор
tableView.backgroundColor = [UIColor clearColor];
Второй набор
tableCell.backgroundColor = [UIColor clearColor];
источник
создать IB Outlet для табличного представления @IBOutlet weak var yourTable: UITableView!
с учетом нагрузки
override func viewDidLoad() { yourTable.delegate = self yourTable.dataSource = self yourTable.backgroundColor = UIColor.clearColor() }
если вы хотите очистить цвет ячейки, также сделайте это в
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { cell.backgroundColor = UIColor.clearColor() }
источник
В моем приложении мне пришлось установить цвет для
backgroundColor
моегоUITableViewCell
класса[UIColor clearColor]
при обновлении дляiOS 7
.источник
Пытаться
[myTable setSeparatorStyle:UITableViewCellSeparatorStyleNone]; [myTable setSeparatorInset:UIEdgeInsetsZero];
А также
cell.backgroundColor = [UIColor clearColor];
источник
В моем случае ячейка была создана с использованием xib. похоже, что построитель интерфейса на xcode5 не может установить clearColor в cell.backgroundColor.
Все, что мне нужно было сделать, это установить
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // get the cell from the nib //then force the backgroundColor cell.backgroundColor = [UIColor clearColor] return cell; }
источник
Просто выберите «Очистить цвет на фоне просмотра» как для таблицы, так и для ячейки.
источник
быстрый 3
override func viewDidLoad() { super.viewDidLoad() tableView.backgroundColor = UIColor.clear }
источник
// Fix iOS 7 clear backgroundColor compatibility // I Think this two lines only are enough cell.backgroundColor = [UIColor clearColor]; cell.selectedBackgroundView = [[UIView new] autorelease];
источник
Задавать
tableView.backgroundColor = [UIColor clearColor];
в viewDidLoad.
если это не работает, попробуйте:
tableView.backgroundView = nil;
источник
В быстром 3
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) cell.backgroundColor = .clear cell.backgroundView = UIView() cell.selectedBackgroundView = UIView() return cell }
источник