Kev*_*ann 6 xcode uiscrollview ios8
我有一个照片库应用程序有一个问题为ios 8做好准备.图像显示在UIPageViewController中,每个页面都有一个带有自定义UIScrollView类的视图.这就像Apples PhotoScroller Sample(https://developer.apple.com/library/ios/samplecode/PhotoScroller/Introduction/Intro.html)
我添加了一个UITapGestureRecognizer进行双击.这是我用于缩放的代码:
- (void)scrollViewDoubleTapped:(UITapGestureRecognizer*)recognizer {
if (self.minimumZoomScale == self.maximumZoomScale) return;
if (self.zoomScale == self.minimumZoomScale) didDoubleTap = NO;
CGPoint pointInView = [recognizer locationInView:_zoomView];
CGFloat newZoomScale;
if (!didDoubleTap && self.zoomScale <= self.minimumZoomScale) {
newZoomScale = self.zoomScale * 2.5f;
newZoomScale = MIN(newZoomScale, self.maximumZoomScale);
didDoubleTap = YES;
}
else {
newZoomScale = self.minimumZoomScale;
didDoubleTap = NO;
}
CGSize scrollViewSize = self.bounds.size;
CGFloat w = scrollViewSize.width / newZoomScale;
CGFloat h = scrollViewSize.height / newZoomScale;
CGFloat x = pointInView.x - (w / 2.0f);
CGFloat y = pointInView.y - (h / 2.0f);
CGRect rectToZoomTo = CGRectMake(x, y, w, h);
[self zoomToRect:rectToZoomTo animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
当我在xcode 5.1上完美运行它时,这就像在任何其他照片应用程序中一样.但是当我在xcode 6 gm上运行/构建它时,缩放的动画变得很奇怪.首先将内容偏移设置为将来的位置,然后放大.因此图像会向上或向下跳跃.
有人之前有过这个问题或有任何想法吗?
Kev*_*ann 10
好吧,我找到了一个解决方法.问题是layoutsubviews缩放前的动画调用.所以现在我做自己的动画
[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^ {
inTransition = YES;
[self zoomToRect:rectToZoomTo animated:NO];
inTransition = NO;
[self layoutSubviews];
} completion:nil];
Run Code Online (Sandbox Code Playgroud)
但如果有人能告诉我为什么要这样做会很好.
编辑:
如果有人仍然感兴趣,请将代码layoutsubviews移至scrollViewDidZoom:(UIScrollView *)scrollView.因此,没有必要使用奇怪的动画来缩放缩放也可以顺利进行.
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |