diff --git a/Classes/JPImagePickerDetailController.h b/Classes/JPImagePickerDetailController.h index 42264b4..27d3ab0 100644 --- a/Classes/JPImagePickerDetailController.h +++ b/Classes/JPImagePickerDetailController.h @@ -16,18 +16,20 @@ @protocol JPImagePickerControllerDataSource; @class JPImagePickerOverviewController; -@interface JPImagePickerDetailController : UIViewController { +@interface JPImagePickerDetailController : UIViewController { JPImagePickerOverviewController *overviewController; IBOutlet UIImageView *previewImageView; NSInteger imageNumber; UIStatusBarStyle originalStatusBarStyle; UIImage * largeImage; + IBOutlet UIScrollView *scrollView; } @property (nonatomic, retain) IBOutlet UIImageView *previewImageView; @property (nonatomic, retain, readonly) JPImagePickerOverviewController *overviewController; @property (nonatomic) NSInteger imageNumber; @property (nonatomic, retain) UIImage * largeImage; +@property (nonatomic, retain) UIScrollView *scrollView; - (id)initWithOverviewController:(JPImagePickerOverviewController *)newOverviewController; - (void)prepareForImageNumber:(NSInteger)newImageNumber; diff --git a/Classes/JPImagePickerDetailController.m b/Classes/JPImagePickerDetailController.m index 06f6ae7..a9a425c 100644 --- a/Classes/JPImagePickerDetailController.m +++ b/Classes/JPImagePickerDetailController.m @@ -13,7 +13,7 @@ @implementation JPImagePickerDetailController @synthesize previewImageView, overviewController, imageNumber; -@synthesize largeImage; +@synthesize largeImage, scrollView; - (id)initWithOverviewController:(JPImagePickerOverviewController *)newOverviewController { if (self = [super initWithNibName:@"JPImagePickerDetailController" bundle:nil]) { @@ -84,6 +84,39 @@ [overviewController.imagePickerController.delegate imagePicker:overviewController.imagePickerController didFinishPickingWithImageNumber:imageNumber]; } +#pragma mark ScrollView Bits + +- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollview { + return self.previewImageView; +} + +- (CGRect)zoomRectForScale:(float)scale withCenter:(CGPoint)center { + + CGRect zoomRect; + + // the zoom rect is in the content view's coordinates. + // At a zoom scale of 1.0, it would be the size of the imageScrollView's bounds. + // As the zoom scale decreases, so more content is visible, the size of the rect grows. + zoomRect.size.height = [self.scrollView frame].size.height / scale; + zoomRect.size.width = [self.scrollView frame].size.width / scale; + + // choose an origin so as to get the right center. + zoomRect.origin.x = center.x - (zoomRect.size.width / 2.0); + zoomRect.origin.y = center.y - (zoomRect.size.height / 2.0); + + return zoomRect; +} + +- (void)zoomAction:(UIGestureRecognizer *)gestureRecognizer { + // double tap zooms in + NSLog(@"Hit the gestureRecognizer"); + float newScale = [self.scrollView zoomScale] * 2; + CGRect zoomRect = [self zoomRectForScale:newScale withCenter:[gestureRecognizer locationInView:gestureRecognizer.view]]; + [self.scrollView zoomToRect:zoomRect animated:YES]; +} + +#pragma mark + - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; diff --git a/Classes/JPImagePickerDetailController.xib b/Classes/JPImagePickerDetailController.xib index 2528a5f..93a61de 100644 --- a/Classes/JPImagePickerDetailController.xib +++ b/Classes/JPImagePickerDetailController.xib @@ -1,39 +1,41 @@ - 784 - 10C540 - 740 - 1038.25 - 458.00 + 1280 + 10K549 + 1900 + 1038.36 + 461.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 62 + 894 - + YES - + IBUIBarButtonItem + IBUIToolbar + IBUIImageView + IBUIView + IBUIScrollView + IBProxyObject YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin - YES - - YES - - - YES - + PluginDependencyRecalculationVersion + YES IBFilesOwner + IBCocoaTouchFramework IBFirstResponder + IBCocoaTouchFramework @@ -45,39 +47,64 @@ 266 {{0, 436}, {320, 44}} + + NO NO + IBCocoaTouchFramework 2 YES + IBCocoaTouchFramework 1 1 + IBCocoaTouchFramework 5 Choose + IBCocoaTouchFramework 2 - + - 274 - {320, 436} + 268 + + YES + + + 274 + {320, 436} + + + + NO + 4 + NO + IBCocoaTouchFramework + + + {340, 436} - NO - 4 - NO + + + YES + YES + IBCocoaTouchFramework - {320, 480} + {{0, 20}, {320, 480}} + + 2 MCAwLjAwNzg0MzEzNzcxOSAwLjAwNzg0MzEzNzcxOQA @@ -86,6 +113,7 @@ 1 + IBCocoaTouchFramework @@ -123,13 +151,31 @@ 13 + + + delegate + + + + 15 + + + + scrollView + + + + 16 + YES 0 - + + YES + @@ -149,17 +195,12 @@ YES - + Preview - - 5 - - - 6 @@ -186,6 +227,20 @@ + + 14 + + + YES + + + + + + 5 + + + @@ -193,8 +248,10 @@ YES -1.CustomClassName + -1.IBPluginDependency -2.CustomClassName - 4.IBEditorWindowLastContentRect + -2.IBPluginDependency + 14.IBPluginDependency 4.IBPluginDependency 5.IBPluginDependency 6.IBPluginDependency @@ -205,8 +262,10 @@ YES JPImagePickerDetailController + com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIResponder - {{179, 638}, {320, 480}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -218,20 +277,16 @@ YES - - YES - + YES - - YES - + - 13 + 16 @@ -252,237 +307,72 @@ id + + YES + + YES + cancelPreview: + finishedPicking: + + + YES + + cancelPreview: + id + + + finishedPicking: + id + + + - previewImageView - UIImageView + YES + + YES + previewImageView + scrollView + + + YES + UIImageView + UIScrollView + + + + YES + + YES + previewImageView + scrollView + + + YES + + previewImageView + UIImageView + + + scrollView + UIScrollView + + IBProjectSource - Classes/JPImagePickerDetailController.h - - - - - YES - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSNetServices.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPort.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSStream.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSXMLParser.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIAccessibility.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UINibLoading.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIResponder.h - - - - UIBarButtonItem - UIBarItem - - IBFrameworkSource - UIKit.framework/Headers/UIBarButtonItem.h - - - - UIBarItem - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIBarItem.h - - - - UIImageView - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIImageView.h - - - - UIResponder - NSObject - - - - UISearchBar - UIView - - IBFrameworkSource - UIKit.framework/Headers/UISearchBar.h - - - - UISearchDisplayController - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UISearchDisplayController.h - - - - UIToolbar - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIToolbar.h - - - - UIView - - IBFrameworkSource - UIKit.framework/Headers/UITextField.h - - - - UIView - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIView.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UINavigationController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UITabBarController.h - - - - UIViewController - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIViewController.h + ./Classes/JPImagePickerDetailController.h 0 + IBCocoaTouchFramework com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 YES - ../Emoticard.xcodeproj 3 - 3.1 + 894