当用户放大 UIScrollView 时如何隐藏某些内容,然后在缩小时显示它?
Posted
技术标签:
【中文标题】当用户放大 UIScrollView 时如何隐藏某些内容,然后在缩小时显示它?【英文标题】:How do I hide something when the user zooms into a UIScrollView, then show it when they zoom out? 【发布时间】:2014-02-17 00:49:35 【问题描述】:当用户放大我的 UIScrollView 时,我想隐藏无关信息。现在,我在 scrollViewDidZoom
委托方法中处理这个问题,该方法在每次缩放更改时都会被调用:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
if (scrollView.zoomScale > scrollView.minimumZoomScale)
[self hideExtraInformation:YES];
else
[self hideExtraInformation:NO];
我的问题是,在那个hideExtraInformation:
方法中,隐藏正在使alpha 动画化。由于每次缩放更改都会调用此方法,因此动画会被触发很多。如何使动画仅在初始放大时调用,然后在它们完全缩小时调用?
【问题讨论】:
【参考方案1】:您可以将currentZoomScale
属性添加到您的班级并使用它来确定是否需要工作
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
BOOL isZooming = scrollView.zoomScale > scrollView.minimumZoomScale;
BOOL isCurrentlyZoomed = self.currentZoomScale > scrollView.minimumZoomScale;
if (isCurrentlyZoomed)
if (!isZooming)
[self hideExtraInformation:NO];
else
if (isZooming)
[self hideExtraInformation:YES];
self.currentZoomScale = scrollView.zoomScale;
【讨论】:
存储可见性状态会更容易。 ;-)以上是关于当用户放大 UIScrollView 时如何隐藏某些内容,然后在缩小时显示它?的主要内容,如果未能解决你的问题,请参考以下文章