anergy7
anergy7

Reputation: 1

object value doesn't change after didset

I am using some cocoa pods frame to make UICollectionView. I am able to get the right data for each cell and setup views.

I want to have different ani

The animation end point should be related to the value of dataSource.The problem is that I can't use the didSet value as I wish. The frame of subviews I added are (0,0,0,0), the values of objects keep the same as initial value outside the didSet. I am not able to access the dataSource Value in setupView function.

Expected effect is that the red bar will move from left side to the right position:

class CereCell : DatasourceCell {

    override var datasourceItem: Any?{
        didSet {
            guard let cere = datasourceItem as? CeremonyDay else { return }
            nameLabel.text = cere.name
            nameLabel.frame = CGRect(x: 0, y: 0, width: 10, height: 10)
currentBar.frame = CGRect(x: 100, y: 100, width: cere.percentage*100 , height: 10)

            position.x = cere.percentage

        }
    }

    let currentBar: UIView =  {
        let currentBar = UIView(frame: CGRect(x: 290, y: 100, width: 300, height: 10))
        currentBar.backgroundColor = .red
        return currentBar
    }()


    override func setupViews() {
        super.setupViews()
        contentView.addSubview(currentBar)
        let frame = currentBar.frame
print(frame)

It just print the (290, 100, 300, 10), which is not the value in didSet.

Upvotes: 0

Views: 119

Answers (0)

Related Questions