public override bool ShouldInvalidateLayoutForBoundsChange(CGRect newBounds) { var boundsDimensionsChanged = newBounds.AreSizesDifferent(CollectionView.Bounds); var newBoundsHasNonZeroArea = newBounds.Width > nfloat.Epsilon && newBounds.Height > nfloat.Epsilon; //Invalidate if collection bounds have changed if (boundsDimensionsChanged && newBoundsHasNonZeroArea) { return(true); } //Set flag and invalidate if sticky headers are enabled if (AreStickyGroupHeadersEnabled) { _invalidatingHeadersOnBoundsChange = true; return(true); } //Don't invalidate return(false); }