#import<UIKit/UIKit.h>
@interface ScrollPhotoViewController : UIViewController {
UIImage *image;
IBOutlet UIImageView *imageView;
IBOutlet UIScrollView *scroll;
}
@property (nonatomic, retain) UIImage *image;
@property (nonatomic, retain) UIScrollView *scroll;
@end
.m文件
#import" ScrollPhotoViewController.h"
@implementation ScrollPhotoViewController
@synthesize image,scroll;
-(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
#pragma mark - Viewlifecycle
- (void)viewDidLoad{
[super viewDidLoad];
self.title = @"保存至相冊";
UIBarButtonItem *uploadBarButton = [[UIBarButtonItem alloc]initWithTitle:@"保存"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(downLoad)];
self.navigationItem.rightBarButtonItem =uploadBarButton;
[uploadBarButton release];
imageView.image = image;
imageView.userInteractionEnabled = YES;
self.scroll.minimumZoomScale = 0.5;
self.scroll.maximumZoomScale = 3;
self.scroll.showsVerticalScrollIndicator = NO;
self.scroll.showsHorizontalScrollIndicator = NO;
self.scroll.scrollsToTop = NO;
self.scroll.userInteractionEnabled = YES;
self.scroll.contentSize = CGSizeMake(imageView.image.size.width *3, imageView.image.size.height * 3);
// IOS3.2才支持UITapGestureRecognizer
UITapGestureRecognizer *gestureRecognizer =[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(imageViewPressed:)];
imageView.tag = 101;
gestureRecognizer.numberOfTapsRequired =2; // 設置雙擊
[imageViewaddGestureRecognizer:gestureRecognizer];
[gestureRecognizer release];
}
-(void)imageViewPressed:(id)sender {
CGFloat zs = self.scroll.zoomScale;
zs = (zs == 1.0) ? 2.0 :1.0; // 雙擊倍數
[UIView beginAnimations:nil context:NULL];
[UIViewsetAnimationDuration:0.3];
self.scroll.zoomScale =zs;
[UIView commitAnimations];
}
- (void)downLoad{
[UIApplication sharedApplication].networkActivityIndicatorVisible =YES;
// 保存至圖片庫
UIImageWriteToSavedPhotosAlbum(image, nil, nil,nil);
[self performSelector:@selector(finish) withObject:nilafterDelay:1];
}
- (void)finish{
[UIApplication sharedApplication].networkActivityIndicatorVisible =NO;
[StaticObj showMsg:@"圖片已保存至相冊"];
}
- (UIView*)viewForZoomingInScrollView:(UIScrollView *)scrollView{
//NSLog(@"viewForZoomingInScrollView");
return imageView;
}
-(void)scrollViewDidEndZooming:(UIScrollView *)scrollViewwithView:(UIView *)view atScale:(float)scale {
//NSLog(@"scrollViewDidEndZooming");
CGFloat zs = scrollView.zoomScale;
zs = MAX(zs,1.0); // 捏合最小
zs = MIN(zs,3.0); // 捏合最大
[UIView beginAnimations:nil context:NULL];
[UIViewsetAnimationDuration:0.3];
scrollView.zoomScale =zs;
[UIView commitAnimations];
}
- (void)viewDidUnload{
[super viewDidUnload];
}
@end