当用户放大我的UIScrollView时,我想隐藏无关的信息。现在,我正在scrollViewDidZoom
委托方法中处理它,在每次缩放变化时都会调用它:
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
if (scrollView.zoomScale > scrollView.minimumZoomScale) {
[self hideExtraInformation:YES];
}
else {
[self hideExtraInformation:NO];
}
我的问题是,在那个hideExtraInformation:
方法中,隐藏是将alpha输出动画。因为每次变焦都会调用此动画,动画会被触发一吨。如何制作动画以便仅在初始放大时调用动画,然后当它们恢复完全缩小时?
答案 0 :(得分: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;
}