现在我有一个超出UIScrollView的视图.由于许多原因,它不能简单地在scrollview中.所以我现在正在做的是,当UIScrollView被缩放/平移时,我更新了我的其他辅助视图.我遇到的唯一问题是,当视图重新回到最小或最大比例时,不会调整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;
Run Code Online (Sandbox Code Playgroud)
然后是自我
-(void) scrollViewDidZoom:(UIScrollView *)scrollView {
float scale = [scrollView zoomScale]; …Run Code Online (Sandbox Code Playgroud) 当用户手动滚动浏览我的UIScrollView时,我的委托的scrollViewDidScroll方法会在动画期间重复调用,并使用contentOffset的新更新值.当我调用"[scrollView setContentOffset:320 animated:YES"时,则以相同的方式调用委托方法.我认为正常滚动速度对于用户体验来说太快了,所以在"animatedWithDuration:"块中包含了一个"[scrollView setContentOffset:320]",就像Apple在UIView类引用中推荐的那样.
但是......现在我的scrollViewDidScroll方法只在动画开始时被调用一次,带有最终值,而不再是动画期间.当我使用旧的"beginAnimations:"方法时,我得到相同的效果.
那么......有谁知道如何解决这个问题?
顺便说一句,UIScrollView的"setContentOffset"方法显示相同的行为.它曾经在动画中被调用,现在只被调用一次.