iOS Неправильный фон раскрытия в UITableViewCell на iPad с iOS9

У меня есть похожая проблема, как я описал здесь. И снова я не могу найти другую скрытую настройку.

Я использовал индикатор раскрытия для своей ячейки табличного представления. И работает на iPhone /iPad с iOS 10+, iPhone с iOS 9 выглядит хорошо, но не на iPad с iOS 9.

Я попытался установить фон для accessoryView, но он все тот же.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! TablesTableViewCell
    cell.accessoryView?.backgroundColor = tableView.backgroundColor
    if let tablesTable = fetchedResultsController?.object(at: indexPath) {
        currentTableSession = TableSessionTable.getCurrentTableSession(table: tablesTable)
        cell.tableNameLabel.text = tablesTable.tableName
        print("cell.contant view")
        print(cell.contentView.backgroundColor)
        print("cell.accessory view")
        print(cell.accessoryView?.backgroundColor)
        print("tableview.background")
        print(tableView.backgroundColor)

Согласно печати, это ноль:

представление cell.contant Необязательно (UIDeviceRGBColorSpace 0,976539 0,977373 0,915492 1) представление cell.accessory nil
tableview.background Необязательно (UIDeviceRGBColorSpace 0,976539 0,977373 0,915492 1)

Также попробовал это:

tableView.cellForRow(at: indexPath)?.accessoryView?.backgroundColor = tableView.backgroundColor

Тот же результат.

Есть идеи, как это исправить?

введите описание изображения здесь

введите описание изображения здесь

1 ответ

Решение

Я нашел решение! Спасибо за Claude31, который помог мне с этой проблемой на форуме разработчиков Apple.

Наконец, я обнаружил, что проблема может быть решена путем инициализации backgroundView и установки цвета:

let backgroundView = UIView()  
backgroundView.backgroundColor = tableView.backgroundColor  
cell.backgroundView = backgroundView

Оно работает!

Другие вопросы по тегам