diff --git a/Classes/DLCImagePickerController.h b/Classes/DLCImagePickerController.h index dc1d256..e3eace5 100644 --- a/Classes/DLCImagePickerController.h +++ b/Classes/DLCImagePickerController.h @@ -7,7 +7,7 @@ // #import -#import "GPUImage.h" +#import #import "DLCBlurOverlayView.h" @class DLCImagePickerController; @@ -20,6 +20,7 @@ @interface DLCImagePickerController : UIViewController +@property (weak, nonatomic) IBOutlet NSLayoutConstraint *filterViewBottomConstraint; @property (nonatomic, weak) IBOutlet GPUImageView *imageView; @property (nonatomic, weak) id delegate; @property (nonatomic, weak) IBOutlet UIButton *photoCaptureButton; diff --git a/Classes/DLCImagePickerController.m b/Classes/DLCImagePickerController.m index 1e0628f..65ad7ee 100644 --- a/Classes/DLCImagePickerController.m +++ b/Classes/DLCImagePickerController.m @@ -70,7 +70,8 @@ -(id) init { -(void)viewDidLoad { [super viewDidLoad]; - self.wantsFullScreenLayout = YES; + self.extendedLayoutIncludesOpaqueBars = YES; + //set background color self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"micro_carbon"]]; @@ -88,7 +89,7 @@ -(void)viewDidLoad { self.focusView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"focus-crosshair"]]; [self.view addSubview:self.focusView]; self.focusView.alpha = 0; - + [self.imageView setFillMode:kGPUImageFillModeStretch]; self.blurOverlayView = [[DLCBlurOverlayView alloc] initWithFrame:CGRectMake(0, 0, self.imageView.frame.size.width, @@ -353,7 +354,6 @@ -(IBAction) toggleBlur:(UIButton*)blurButton { blurFilter = [[GPUImageGaussianSelectiveBlurFilter alloc] init]; [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setExcludeCircleRadius:80.0/320.0]; [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setExcludeCirclePoint:CGPointMake(0.5f, 0.5f)]; - [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setBlurRadiusInPixels:kStaticBlurSize]; [(GPUImageGaussianSelectiveBlurFilter*)blurFilter setAspectRatio:1.0f]; } hasBlur = YES; @@ -410,7 +410,7 @@ -(void)captureImage { [self prepareFilter]; [self.retakeButton setHidden:NO]; - [self.photoCaptureButton setTitle:@"Done" forState:UIControlStateNormal]; + [self.photoCaptureButton setTitle:@"Finish" forState:UIControlStateNormal]; [self.photoCaptureButton setImage:nil forState:UIControlStateNormal]; [self.photoCaptureButton setEnabled:YES]; if(![self.filtersToggleButton isSelected]){ @@ -518,20 +518,17 @@ -(IBAction) handlePan:(UIGestureRecognizer *) sender { if ([sender state] == UIGestureRecognizerStateBegan) { [self showBlurOverlay:YES]; - [gpu setBlurRadiusInPixels:0.0f]; if (isStatic) { [staticPicture processImage]; } } if ([sender state] == UIGestureRecognizerStateBegan || [sender state] == UIGestureRecognizerStateChanged) { - [gpu setBlurRadiusInPixels:0.0f]; [self.blurOverlayView setCircleCenter:tapPoint]; [gpu setExcludeCirclePoint:CGPointMake(tapPoint.x/320.0f, tapPoint.y/320.0f)]; } if([sender state] == UIGestureRecognizerStateEnded){ - [gpu setBlurRadiusInPixels:kStaticBlurSize]; [self showBlurOverlay:NO]; if (isStatic) { [staticPicture processImage]; @@ -585,14 +582,12 @@ -(IBAction) handlePinch:(UIPinchGestureRecognizer *) sender { if ([sender state] == UIGestureRecognizerStateBegan) { [self showBlurOverlay:YES]; - [gpu setBlurRadiusInPixels:0.0f]; if (isStatic) { [staticPicture processImage]; } } if ([sender state] == UIGestureRecognizerStateBegan || [sender state] == UIGestureRecognizerStateChanged) { - [gpu setBlurRadiusInPixels:0.0f]; [gpu setExcludeCirclePoint:CGPointMake(midpoint.x/320.0f, midpoint.y/320.0f)]; self.blurOverlayView.circleCenter = CGPointMake(midpoint.x, midpoint.y); CGFloat radius = MAX(MIN(sender.scale*[gpu excludeCircleRadius], 0.6f), 0.15f); @@ -602,7 +597,6 @@ -(IBAction) handlePinch:(UIPinchGestureRecognizer *) sender { } if ([sender state] == UIGestureRecognizerStateEnded) { - [gpu setBlurRadiusInPixels:kStaticBlurSize]; [self showBlurOverlay:NO]; if (isStatic) { [staticPicture processImage]; @@ -614,23 +608,14 @@ -(IBAction) handlePinch:(UIPinchGestureRecognizer *) sender { -(void) showFilters { [self.filtersToggleButton setSelected:YES]; self.filtersToggleButton.enabled = NO; - CGRect imageRect = self.imageView.frame; - imageRect.origin.y -= 34; - CGRect sliderScrollFrame = self.filterScrollView.frame; - sliderScrollFrame.origin.y -= self.filterScrollView.frame.size.height; - CGRect sliderScrollFrameBackground = self.filtersBackgroundImageView.frame; - sliderScrollFrameBackground.origin.y -= - self.filtersBackgroundImageView.frame.size.height-3; - self.filterScrollView.hidden = NO; self.filtersBackgroundImageView.hidden = NO; [UIView animateWithDuration:0.10 delay:0.05 options: UIViewAnimationOptionCurveEaseOut animations:^{ - self.imageView.frame = imageRect; - self.filterScrollView.frame = sliderScrollFrame; - self.filtersBackgroundImageView.frame = sliderScrollFrameBackground; + _filterViewBottomConstraint.constant=42; + [self.view layoutIfNeeded]; } completion:^(BOOL finished){ self.filtersToggleButton.enabled = YES; @@ -639,21 +624,12 @@ -(void) showFilters { -(void) hideFilters { [self.filtersToggleButton setSelected:NO]; - CGRect imageRect = self.imageView.frame; - imageRect.origin.y += 34; - CGRect sliderScrollFrame = self.filterScrollView.frame; - sliderScrollFrame.origin.y += self.filterScrollView.frame.size.height; - - CGRect sliderScrollFrameBackground = self.filtersBackgroundImageView.frame; - sliderScrollFrameBackground.origin.y += self.filtersBackgroundImageView.frame.size.height-3; - [UIView animateWithDuration:0.10 delay:0.05 options: UIViewAnimationOptionCurveEaseOut animations:^{ - self.imageView.frame = imageRect; - self.filterScrollView.frame = sliderScrollFrame; - self.filtersBackgroundImageView.frame = sliderScrollFrameBackground; + _filterViewBottomConstraint.constant=-31; + [self.view layoutIfNeeded]; } completion:^(BOOL finished){ diff --git a/Resources/DLCImagePicker.xib b/Resources/DLCImagePicker.xib index 8f96625..1397468 100644 --- a/Resources/DLCImagePicker.xib +++ b/Resources/DLCImagePicker.xib @@ -1,941 +1,289 @@ - - - - 1552 - 12E55 - 3084 - 1187.39 - 626.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 2083 - - - IBProxyObject - IBUIButton - IBUIImageView - IBUIPanGestureRecognizer - IBUIPinchGestureRecognizer - IBUIScrollView - IBUITapGestureRecognizer - IBUIView - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - - - 301 - {{0, 78}, {320, 320}} - - - - _NS:9 - - 3 - MAA - - 2 - - IBCocoaTouchFramework - - - - 266 - {{-12, 435}, {344, 75}} - - - - _NS:9 - NO - IBCocoaTouchFramework - - NSImage - dock_bg.png - - - - - 266 - {{0, 437}, {320, 75}} - - - - _NS:9 - YES - YES - IBCocoaTouchFramework - NO - NO - NO - - - - 266 - - - - 292 - {{115, 3}, {90, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - - 3 - MQA - - - 1 - MC4xMzc1NzQxMzMyIDAuMTM2ODMyODAxMSAwLjE0MjIyMTcxNTMAA - - - 3 - MC41AA - - - NSImage - camera-icon.png - - - NSImage - camera-button.png - - - 2 - 2 - - - Helvetica-Bold - 18 - 16 - - - - - 292 - {{263, 3}, {65, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - filter-close.png - - - NSImage - filter-open.png - - - 2 - 15 - - - Helvetica-Bold - 15 - 16 - - - - - 292 - {{-8, 3}, {65, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - - NSImage - library.png - - - - - - - -2147483356 - {{11, 7}, {71, 29}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - Retake - - - 1 - MC4xMzcyNTQ5MDIgMC4xMzcyNTQ5MDIgMC4xNDUwOTgwMzkyAA - - - - - 2 - 14 - - - Helvetica-Bold - 14 - 16 - - - - {{0, 437}, {320, 44}} - - - - _NS:9 - - 3 - MC42NjY2NjY2NjY3AA - - IBCocoaTouchFramework - - - - 290 - {320, 44} - - - - _NS:9 - - 3 - MC4zMzMzMzMzMzMzAA - - IBCocoaTouchFramework - - - - 292 - {{277, 3}, {40, 37}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - close.png - - - - - - - 292 - {{136, 3}, {50, 41}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - front-camera.png - - - - - - - 292 - {{213, 0}, {44, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - blur-on.png - - - NSImage - blur.png - - - - - - - 292 - {{57, 0}, {44, 44}} - - - - _NS:9 - NO - IBCocoaTouchFramework - 0 - 0 - YES - - - 1 - MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - - NSImage - flash.png - - - NSImage - flash-off.png - - - - - - {320, 480} - - - - _NS:9 - - IBCocoaTouchFramework - - - - - - - - - - filtersToggleButton - - - - 64 - - - - blurToggleButton - - - - 61 - - - - photoCaptureButton - - - - 45 - - - - filtersBackgroundImageView - - - - 72 - - - - topBar - - - - 74 - - - - flashToggleButton - - - - 78 - - - - filterScrollView - - - - 69 - - - - cameraToggleButton - - - - 48 - - - - photoBar - - - - 73 - - - - view - - - - 42 - - - - imageView - - - - 43 - - - - retakeButton - - - - 81 - - - - cancelButton - - - - 44 - - - - libraryToggleButton - - - - 88 - - - - gestureRecognizers - - - NSArray - YES - - 52 - - - - gestureRecognizers - - - NSArray - YES - - 66 - - - - gestureRecognizers - - - NSArray - YES - - 90 - - - - takePhoto: - - - 7 - - 46 - - - - toggleFilters: - - - 7 - - 68 - - - - cancel: - - - 7 - - 47 - - - - switchCamera - - - 7 - - 49 - - - - toggleBlur: - - - 7 - - 62 - - - - handlePinch: - - - - 63 - - - - handlePan: - - - - 67 - - - - toggleFlash: - - - 7 - - 79 - - - - retakePhoto: - - - 7 - - 82 - - - - switchToLibrary: - - - 7 - - 87 - - - - handleTapToFocus: - - - - 91 - - - - - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 51 - - - - - 65 - - - - - 4 - - - - - - - - - - - - - - - - 37 - - - - - 77 - - - - - 50 - - - - - 34 - - - - - 36 - - - - - 71 - - - - - 7 - - - - - 31 - - - - - - - - - - - 16 - - - - - 83 - - - - - 80 - - - - - 32 - - - - - 35 - - - - - 89 - - - - - - - DLCImagePickerController - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - GPUImageView - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - 91 - - - - - DLCImagePickerController - UIViewController - - id - UIGestureRecognizer - UIPinchGestureRecognizer - UITapGestureRecognizer - UIButton - id - id - UIButton - UIButton - UIButton - - - - cancel: - id - - - handlePan: - UIGestureRecognizer - - - handlePinch: - UIPinchGestureRecognizer - - - handleTapToFocus: - UITapGestureRecognizer - - - retakePhoto: - UIButton - - - switchToLibrary: - id - - - takePhoto: - id - - - toggleBlur: - UIButton - - - toggleFilters: - UIButton - - - toggleFlash: - UIButton - - - - UIButton - UIButton - UIButton - UIScrollView - UIImageView - UIButton - UIButton - GPUImageView - UIButton - UIView - UIButton - UIButton - UIView - - - - blurToggleButton - UIButton - - - cameraToggleButton - UIButton - - - cancelButton - UIButton - - - filterScrollView - UIScrollView - - - filtersBackgroundImageView - UIImageView - - - filtersToggleButton - UIButton - - - flashToggleButton - UIButton - - - imageView - GPUImageView - - - libraryToggleButton - UIButton - - - photoBar - UIView - - - photoCaptureButton - UIButton - - - retakeButton - UIButton - - - topBar - UIView - - - - IBProjectSource - ./Classes/DLCImagePickerController.h - - - - GPUImageView - UIView - - IBProjectSource - ./Classes/GPUImageView.h - - - - - 0 - IBCocoaTouchFramework - YES - 3 - - {15, 22} - {16, 23} - {101, 41} - {26, 21} - {22, 21} - {320, 75} - {29, 28} - {28, 28} - {22, 26} - {22, 26} - {48, 24} - {28, 28} - - 2083 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file