title: object value doesn't change after didset
body: <p>I am using some cocoa pods frame to make UICollectionView. I am able to get the right data for each cell and setup views. </p>
  
  <p>I want to have different ani</p>
  
  <p>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.</p>
  
  <p>Expected effect is that the red bar will move from left side to the right position:</p>
  
  <p><img src="https://i.stack.imgur.com/H74Wd.png" alt=""></p>
  
  <pre><code>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)
  </code></pre>
  
  <p>It just print the  (290, 100, 300, 10), which is not the value in didSet.</p>