现在,我有一个不在UIScrollView之外的 View 。由于许多原因,它不能简单地位于滚动 View 内部。所以现在我正在做的是,随着UIScrollView的缩放/平移,我更新了其他辅助 View 。我要考虑的唯一问题是,在 View 弹回到最小或最大比例时,不调整zoomScale值。关于如何在动画返回时获取此值的任何建议?
样例代码:
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, appSize.width, appSize.height)];
self.scrollView.contentSize = CGSizeMake(appSize.width * 2, appSize.height * 2);
self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
self.scrollView.delegate = self;
self.scrollView.bounces = YES;
self.scrollView.bouncesZoom = YES;
self.scrollView.alwaysBounceHorizontal = YES;
self.scrollView.alwaysBounceVertical = YES;
self.scrollView.showsHorizontalScrollIndicator = YES;
self.scrollView.showsVerticalScrollIndicator = YES;
self.scrollViewZoomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,
appSize.width * 2,
appSize.height * 2)];
[[self scrollView] addSubview:self.scrollViewZoomView];
float minZoomScale = 2.0f;
self.scrollView.minimumZoomScale = minZoomScale;
self.scrollView.maximumZoomScale = 1.0f;
self.scrollView.zoomScale = self.scrollView.minimumZoomScale;
然后关于自我
-(void) scrollViewDidZoom:(UIScrollView *)scrollView {
float scale = [scrollView zoomScale];
[self updateAuxViewScale:scale];
}
最佳答案
多亏了this answer,很明显,人们可以使用presentationLayer
来获取正确的值。
我创建了一个UIScrollView
category
来为zoomScale
,contentOffset
和contentSize
添加特殊的 setter/getter ,即使UIScrollView
正在设置动画,它们也返回正确的值。
您可以在以下位置找到该存储库:https://github.com/bddckr/BDDRScrollViewExtensions
关于iphone - 缩放弹跳时不会更新UIScrollView的zoomScale属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9133021/