如何缩放UIScrollView的特定部分?

时间:2010-05-21 06:35:01

标签: iphone scrollview

HI, 我开发了一个应用程序,我想在其中实现启动画面,在我想要绑定scrollView和UIImage的启动画面上。我的代码如下,

-(void)splashAnimation{
    window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];
    //scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    scrollView = [[UIScrollView alloc] initWithFrame:[window bounds]];
    scrollView.pagingEnabled = NO;
    scrollView.bounces = NO;

    UIImage *image = [UIImage imageNamed:@"splash.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.userInteractionEnabled = NO;  

    [scrollView addSubview:imageView];
    [scrollView setDelegate:self];
    //[scrollView release];


}

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    [self splashAnimation];
    [self initControllers];
    [window addSubview:[mainTabBarController view]];
    [window makeKeyAndVisible];
}

在我给定的代码上,一个空白窗口出现并保持开启状态。 我想在那个空白的屏幕上绑定我的splash.png。

****以上问题解决了**** 我目前的代码是

    scrollView.pagingEnabled = NO;
    scrollView.bounces = NO;

    UIImage *image = [UIImage imageNamed:@"splash.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.userInteractionEnabled = NO;  
    [scrollView addSubview:imageView];

    scrollView.maximumZoomScale = 4.0f;
    scrollView.minimumZoomScale = 1.0f;

    CGRect rect = CGRectMake(119, 42, 208, 166);

    [scrollView zoomToRect:rect animated:YES];
    [scrollView setDelegate:self];
    [window addSubview:scrollView];
    [window makeKeyAndVisible];

我想缩放scrollView的特定部分。

2 个答案:

答案 0 :(得分:4)

RajB - 用于缩放scrollView:

CGRect zoomRect = CGRectMake(119, 42, 208, 166);
[scrollView zoomToRect:zoomRect animated:YES];

希望这有帮助!

答案 1 :(得分:1)

您创建了UIScrollView但从未将其添加到视图层次结构中,因此永远不会显示它。致电[window addSubview:scrollView],然后不要忘记发布它。

如果您在项目中使用MainWindow.xib,则会为您创建窗口,您无需创建自己的窗口。

使用[[UIScreen mainScreen]代替CGRect(0, 0, 320, 420)< - 我也相信你的意思是“480”

设置启动动画后,请拨打[window addSubview:[mainTabBarController view]]。即使在如前所述添加滚动视图之后,这也将成为最顶层且因此可见的视图。

延迟[window addSubview:[mainTabBarController view]],直到你的启动动画完成。