Как получить доступ к правильной ширине ячейки внутри класса UITabelViewCell? - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь получить правильную ширину для пользовательской ячейки внутри класса UITableViewCell.Я попробовал следующее:

    import UIKit

    import ChameleonFramework

    class IsectionsCustomTableViewCell: UITableViewCell {

        let cellContainer: UIView = {

            let container = UIView()

            container.backgroundColor = UIColor.flatPink()

            container.translatesAutoresizingMaskIntoConstraints = false

            return container

        }()

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {

            super.init(style: style, reuseIdentifier: reuseIdentifier)

            addSubview(cellContainer)

    }

        required init?(coder aDecoder: NSCoder) {

            fatalError("init(coder:) has not been implemented")

        }

    func applyAppropriateSizeAndConstraintsForCellItems() {

            NSLayoutConstraint.activate([

                cellContainer.topAnchor.constraint(equalTo: self.topAnchor),

                cellContainer.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -1*((self.frame.size.width)/2)),

                cellContainer.bottomAnchor.constraint(equalTo: self.bottomAnchor),

                cellContainer.leftAnchor.constraint(equalTo: self.leftAnchor)

])
    }

    }

Однако, как видно из прикрепленного изображения, приведенная ниже строка кода, использованная выше, не вернула правильную ширину, поскольку общая ширина не была разделена поровну пополам:

-1*((self.frame.size.width)/2)

Любая идея, что я здесь сделал неправильно, как я могу получить истинную ширину пользовательской ячейки, которая, по моему мнению, должна быть равна ширине таблицы, в которую она будет помещена внутри?

С уважением, Шади Хаммудех. enter image description here

1 Ответ

0 голосов
/ 10 июля 2019

Основывайте ограничение на кадре. Используйте правильное ограничение.

Изменение:

cellContainer.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -1*((self.frame.size.width)/2))

до:

cellContainer.rightAnchor.constraint(equalTo: cellContainer.superview.centerXAnchor)
...