Tuesday, 7 May 2019

How to fix this old frame glitch appearing when animating view?

I have a Header view that contains pager view (FSPagerView), which has an item (FSPagerViewCell) that contains bar chart, 2019, year review texts. I'm trying to scale down Header at certain times with such code:

private func setSelfHeightAnimated(height: CGFloat)
{
    UIView.animate(withDuration: 0.2, animations: {
        self.selfHeightAnchor.constant = height
        self.superview?.layoutIfNeeded()
    })
}

private func setPagerHeightAnimated(height: CGFloat)
{
    UIView.animate(withDuration: 0.2, animations: {
        self.pagerHeightAnchor.constant = height
        self.layoutIfNeeded()
//            self.pagerView.layoutIfNeeded()
//            self.pagerView.layoutSubviews()
//            self.pagerView.cellForItem(at: 0)?.layoutIfNeeded()
//            self.pagerView.cellForItem(at: 0)?.setNeedsDisplay()
//            self.superview?.layoutIfNeeded()
//            self.setNeedsDisplay()
//            self.pagerView.setNeedsDisplay()
    })
}

However, the old frame glitch is very visible. What could be missing? Here is the video: https://streamable.com/owsdi

enter image description here



from How to fix this old frame glitch appearing when animating view?

No comments:

Post a Comment