Iphone 如何缩放UIScrollView';It’我很满意

Iphone 如何缩放UIScrollView';It’我很满意,iphone,xcode,uiscrollview,zooming,Iphone,Xcode,Uiscrollview,Zooming,我在iPhone上的UIScrollView是480x230,首次显示时的内容是972x230。我需要提供功能,当用户双击UIScrollView时,内容将按比例缩放以适合480x230 UIScrollView。当鼠标再次双击它时,它应该缩小到原来的大小 最好的方法是什么?我已经摸索了几个小时,并认为这将工作 [bodyClockScrollView zoomToRect:bodyClockScrollView.frame animated:YES]; 但似乎什么也没发生 谢谢,如果您能为我

我在iPhone上的UIScrollView是480x230,首次显示时的内容是972x230。我需要提供功能,当用户双击UIScrollView时,内容将按比例缩放以适合480x230 UIScrollView。当鼠标再次双击它时,它应该缩小到原来的大小

最好的方法是什么?我已经摸索了几个小时,并认为这将工作

[bodyClockScrollView zoomToRect:bodyClockScrollView.frame animated:YES];
但似乎什么也没发生


谢谢,如果您能为我指出正确的方向,我们将不胜感激。

您需要确保设置为scrollview委托的类实现以下方法:

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView {
return someView;

}

您需要确保设置为scrollview委托的类实现以下方法:

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)scrollView {
return someView;

}

使用CGAffineTransform,我想出了一种做我想做的事情的方法

    //bodyCleckScrollView contains a UIView name bodyClock
    //get the scale factor required to fit bodyClock inside the iPhone window and resize it...
    CGFloat scale = 480/bodyClockScrollView.contentSize.width;  
    bodyClock.transform = CGAffineTransformScale(bodyClock.transform, scale, scale);
    //move bodyClock to the bottom of bodyScrollView.
    bodyClock.transform = CGAffineTransformTranslate(bodyClock.transform, 0.0,bodyClockScrollView.frame.size.height-bodyClock.frame.size.height);
    //scoll bodyScrollView so that bodyClock is centered in the window 
    CGPoint offsetPoint = CGPointMake(bodyClock.frame.origin.x, 0.0);
    [bodyClockScrollView setContentOffset:offsetPoint animated:YES];   
这非常有效,当我想将其缩小到默认大小和位置时,您只需调用

    bodyClock.transform = CGAffineTransformIdentity;

使用CGAffineTransform,我想出了一种方法来做我想做的事情

    //bodyCleckScrollView contains a UIView name bodyClock
    //get the scale factor required to fit bodyClock inside the iPhone window and resize it...
    CGFloat scale = 480/bodyClockScrollView.contentSize.width;  
    bodyClock.transform = CGAffineTransformScale(bodyClock.transform, scale, scale);
    //move bodyClock to the bottom of bodyScrollView.
    bodyClock.transform = CGAffineTransformTranslate(bodyClock.transform, 0.0,bodyClockScrollView.frame.size.height-bodyClock.frame.size.height);
    //scoll bodyScrollView so that bodyClock is centered in the window 
    CGPoint offsetPoint = CGPointMake(bodyClock.frame.origin.x, 0.0);
    [bodyClockScrollView setContentOffset:offsetPoint animated:YES];   
这非常有效,当我想将其缩小到默认大小和位置时,您只需调用

    bodyClock.transform = CGAffineTransformIdentity;

我希望你,知道如何不获取taps,如果是,你只需要在双击条件下实现你需要的。我希望你,知道如何不获取taps,如果是,你只需要在双击条件下实现你需要的。谢谢,我正在/正在实现此方法。谢谢,我正在/正在实现此方法。