3

I am writing a custom UICollectionViewFlowLayout which overrides targetContentOffset(forProposedContentOffset:) in order to provide right contentOffset when user pinch to zoom since I get this problem (wrong contentOffset)

Dynamically setting layout on UICollectionView causes inexplicable contentOffset change

class TimelineCollectionViewFlowLayout: UICollectionViewFlowLayout {
    
    // MARK: - Init
    
    override init() {
        super.init()
        self.minimumLineSpacing = 0
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
    
    override func prepare() {
        if let collectionView = self.collectionView {
            collectionView.isPagingEnabled = false
            self.sectionInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
            self.scrollDirection = .horizontal
        }
    }
    
    override func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint) -> CGPoint {
        print("hello")
        return proposedContentOffset
    }
}

But unfortunately targetContentOffset is not called, do you have an idea why?

Thanks!

Thierry

aheze
  • 24,434
  • 8
  • 68
  • 125
thierryb
  • 3,660
  • 4
  • 42
  • 58

1 Answers1

7

try with

override func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint 
Ivailo Kanev
  • 202
  • 2
  • 7