2012-07-23 43 views
-1

我有一個問題。我有這個代碼縮放不起作用。如何縮放圖像的xcode?

- (無效)viewDidLoad中 {

UIImage *image = [UIImage imageNamed:@"zoomimage.jpeg"]; 

CGRect yFrame = CGRectMake(0.0, 0.0, 320, 432); 

imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, image.size.width, image.size.height)]; 
[imageView setImage:image]; 

scrollView = [[UIScrollView alloc] initWithFrame:yFrame]; 
[scrollView setScrollEnabled:YES]; 
[scrollView setBackgroundColor:[UIColor blackColor]]; 
[scrollView setContentSize:CGSizeMake(image.size.width, image.size.height)]; 
scrollView.minimumZoomScale = 0.4; 
scrollView.maximumZoomScale = 4.0; 
[scrollView setZoomScale:scrollView.minimumZoomScale]; 

[self.view addSubview:scrollView]; 
[self.view bringSubviewToFront:scrollView]; 

[scrollView addSubview:imageView]; 

}

+0

是時候研究蘋果的示例源代碼夥伴 – 2012-07-23 11:30:39

回答

4

首先,滾動型的代表設置爲你的自我。

scrollView.delegate = self; 

現在,在你的類添加的UIScrollView此委託方法,使縮放圖像。

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

試試這個:

.H控制器:

@interface MyViewController : UIViewController{ 

IBOutlet UIScrollView *scrollView; 
UIImageView *imageView; 

} 

@property (nonatomic, retain) UIScrollView *scrollView; 
@property (nonatomic, retain) UIImageView *imageView; 

.M控制器:

@synthesize scrollView, imageView; 


-(UIView *)viewForZoomingInScrollView:(UIScrollVi­ew *)scrollView{ 

return imageView; 

} 

- (void)viewDidLoad 
{ 

UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"YourImageName.png"]]; 
self.imageView = tempImageView; 
[tempImageView release]; 
scrollView.maximumZoomScale = 3.0; 
scrollView.minimumZoomScale = 0.6; 
scrollView.clipsToBounds = YES; 
scrollView.delegate = self; 
[scrollView addSubview:imageView]; 
} 

此代碼爲我工作:)

+0

由於您應該使用ARC(因爲Xcode 4,更多信息在這裏:http://en.wikipedia.org/wiki/Automatic_Reference_Counting),如果您刪除此行>>> [tempImageView發佈];來自.m控制器的<<<。讓ARC找出內存的保留/釋放! – Neejoh 2013-11-15 19:45:36