如何在UIScrollView的滚动指标下放置一个非滚动UIView?

问题描述:

我有一个应用程序,我正在使用缩放scrollView将图像裁剪为具有固定宽高比的矩形。我有一个遮罩,可以遮挡将要裁剪的图像部分。目前,我将这个子视图添加到UIScrollView的父级,使它们成为兄弟姐妹,其中此掩码比scrollview'更高'。看起来很棒。除...如何在UIScrollView的滚动指标下放置一个非滚动UIView?

这面具也掩盖scrollIndicators,所以看起来有点哑。我可以关掉scrollIndicators,或者理想,我想这个地方的的UIView下scrollIndicators,但没有得到与其他的内容,这是,如果我做它通过[滚动视图addSubview滚动视图的子视图会发生什么滚动: myMaskView];

任何人都知道这是可能的吗?

首先,UIScrollView的子类,这样就可以修改滚动视图的默认行为。

然后用图像创建图像视图,并将图像视图和遮罩视图都放到滚动视图中,这样您的视图将位于滚动指示器的下方。

第三,在滚动视图的委托方法viewForZoomingInScrollView:,回报您的图像视图,以便只图像视图缩放。请注意,滚动视图会将内容大小调整为返回视图的大小,但只要您的图像视图占据整个内容大小就可以了。

而在去年,重载layoutSubviews方法,将面膜以滚动视图的可视范围。据称layoutSubviews方法被称为每一帧滚动,所以位置改变对最终用户不可见。

有关更多详细信息,请参阅WWDC会话视频“高级滚动视图技术”。

编辑:好的,刚发现你可以避免通过实现委托方法scrollViewDidScroll重写layoutSubviews。