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);
        }