2010-08-12 67 views
2

我似乎在这里实现了所有正确的代码。我的代码中是否存在某些内容?UIScrollView无法在缩放后平移

// 
// ScrollyiPadViewController.m 
// ScrollyiPad 
// 
// Created by Sidwyn Koh on 5/19/10. 
// Copyright __MyCompanyName__ 2010. All rights reserved. 
// 

#import "ScrollyiPadViewController.h" 

@implementation ScrollyiPadViewController 

-(void)viewDidLoad{ 
    [self.view addSubview:scrollView]; 
    [scrollView addSubview:imageView]; 

    UIImage *image = [UIImage imageNamed:@"hardware-01-20100127.jpg"]; 
    scrollView.contentSize = [image size]; 
    scrollView.maximumZoomScale = 2.0; 
// scrollView.delegate = self; 
} 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ 
} 

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



/* 
// The designated initializer. Override to perform setup that is required before the view is loaded. 
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
     // Custom initialization 
    } 
    return self; 
} 
*/ 

/* 
// Implement loadView to create a view hierarchy programmatically, without using a nib. 
- (void)loadView { 
} 
*/ 


/* 
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 
*/ 


/* 
// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 
*/ 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [super dealloc]; 
} 

@end 

回答

-1

找到了,我忘了把clipstoBounds = YES

0

我会

scrollView.contentSize = imageView.frame.size; 

而不是

scrollView.contentSize = [image size]; 
+0

没有这样的属性的ImageView :( 我也试过imageView.bounds.size和imageView.frame.size,既没有工作(你甚至不能滚动/缩放) – 2010-08-12 13:07:03

+0

对不起,固定我的答案,应该确实是imageView.frame.size – mvds 2010-08-12 13:41:50

1

也许你需要设置的ImageView的框架内UIScrollView;

imageView.frame = CGRectMake(0, 0, imageViewer.image.size.width, imageViewer.image.size.height);

11

我正在经历类似的东西;放大后平移将停止工作。找出委托函数'scrollViewDidEndZooming:withView:atScale:'我需要根据传递的'atScale'更新ScrollView的contentize属性。

类似于: self.scrollView.contentSize = CGSizeMake(self.imageView.image.size.width * scale,self.imageView.image.size.height * scale);

self.imageView.frame相对于缩放比例自动更新;所以你不需要根据比例调整框架。

如果您没有明确设置scrollView的内容大小,那么它只会被赋予imageView的框架大小......这是imageView无法解析的原因。