【发布时间】:2010-12-02 03:45:36
【问题描述】:
使用 OS 3.1,我在 UIScrollView 中放置了一个点击检测图像视图(取自 Apple 的 Scroll View 套件示例),并希望在图像视图出现时放大两次。第一次缩放是使整个图像可见,第二次缩放是放大到指定区域。我现在拥有的是:
- (void)viewDidLoad {
// After adding scroll view and image view
imageScrollView.minimumZoomScale = 0.5;
imageScrollView.maximumZoomScale = 2.75;
imageScrollView.zoomScale = 1.0;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDelegate: self];
[imageScrollView zoomToRect:[imageView frame] animated:YES];
[UIView commitAnimations];
以及以下检测第一次缩放的结束并触发第二次:
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
selectedRect.origin.x = 60.0;
selectedRect.origin.y = 90.0;
selectedRect.size.width = 90.0;
selectedRect.size.height = 90.0;
imageScrollView.minimumZoomScale = 1.0;
imageScrollView.maximumZoomScale = 2.75;
imageScrollView.zoomScale = 2.5;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDelegate: self];
[imageScrollView zoomToRect:selectedRect animated:YES];
[UIView commitAnimations];
这会导致无限循环,并且滚动视图在两个放大点之间反复“摆动”。我应该做些什么不同的事情?谢谢。
【问题讨论】:
标签: objective-c iphone