Пользовательский UITableviewCell ошибка прозрачного фона Swift 4 - PullRequest
0 голосов
/ 03 октября 2019

У меня проблемы с установкой contentView.backgroundColor пользовательских TableViewCell на .clean. Если я установлю его на любой цвет, он будет работать, но когда я выберу .clean, он будет показывать фон. Я попытался присвоить ячейку contentView ее собственной розетке, но ничего не изменилось.

Как всегда большое спасибо.

Это код для пользовательской ячейки:

class ProductCategoryTableViewCell: UITableViewCell {

//    @IBOutlet weak var view: UIView!
    @IBOutlet weak var bg: UIView!
    @IBOutlet weak var categoryLabel: UILabel!

    var category: String!


    override func awakeFromNib() {
        super.awakeFromNib()
        configureUi()
    }

    override func prepareForReuse() {
        super.prepareForReuse()
        // Set your default background color, title color etc
        configureUi()
    }

    func configureUi() {
        let cornerRadius: CGFloat = 5
        bg.layer.cornerRadius = cornerRadius
        bg.layer.borderWidth = 1
        bg.clipsToBounds = true

        if Theme.selectedTheme == 1 {
            if #available(iOS 11.0, *) {
//                view.backgroundColor = UIColor.red //Theme.backgroundColor

                contentView.backgroundColor = UIColor.clear
                bg.backgroundColor = Theme.textFieldBackgroundColor
                bg.layer.borderColor = Theme.accentColor?.cgColor

                categoryLabel.backgroundColor = Theme.textFieldBackgroundColor
                categoryLabel.textColor = Theme.textFieldTextColor
            } else {
                // Fallback on earlier versions
//                view.backgroundColor = Theme.backgroundColorRgb

                bg.backgroundColor = Theme.textFieldBackgroundColorRgb
                bg.layer.borderColor = Theme.accentColorRgb.cgColor

                categoryLabel.backgroundColor = Theme.textFieldBackgroundColorRgb
                categoryLabel.textColor = Theme.textFieldTextColorRgb
            }
        } else if Theme.selectedTheme == 2 {
            if #available(iOS 11.0, *) {
//                view.backgroundColor = Theme.backgroundColor2

                bg.backgroundColor = Theme.textFieldBackgroundColor2
                bg.layer.borderColor = Theme.accentColor2?.cgColor

                categoryLabel.backgroundColor = Theme.textFieldBackgroundColor2
                categoryLabel.textColor = Theme.textFieldTextColor2
            } else {
                // Fallback on earlier versions
//                view.backgroundColor = Theme.backgroundColorRgb2

                bg.backgroundColor = Theme.textFieldBackgroundColorRgb2
                bg.layer.borderColor = Theme.accentColorRgb2.cgColor

                categoryLabel.backgroundColor = Theme.textFieldBackgroundColorRgb2
                categoryLabel.textColor = Theme.textFieldTextColorRgb2
            }
        }
    }

}

Screenshot Three

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

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

Чтобы сделать их понятными, вам нужно установить его для bgи contentView и UITableViewCell и UITableView, так что попробуйте установить его для всех них:

item.backgroundColor = .clear
item.isOpaque = false

Замените item на элементы пользовательского интерфейса, которые я упомянул выше

0 голосов
/ 03 октября 2019

Попробуйте

self.backgroundColor = UIColor.clear
self.isOpaque = false 

Повторите это для contentView & bg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...