-
Notifications
You must be signed in to change notification settings - Fork 0
/
CIPViewController.m
104 lines (88 loc) · 2.88 KB
/
CIPViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//
// CIPViewController.m
// CustomImagePickerTest
//
// Created by 暁 松田 on 11/11/19.
// Copyright (c) 2011年 __MyCompanyName__. All rights reserved.
//
#import "CIPViewController.h"
#import "CIPImagePickerController.h"
#import <QuartzCore/QuartzCore.h>
@implementation CIPViewController
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)showPicker:(id)sender
{
if ([CIPImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
CIPImagePickerController *imagePickerController = [[CIPImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.delegate = self;
imagePickerController.showsCameraControls = NO;
//custom tool bar
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, imagePickerController.view.frame.size.height - 54, 320, 54)];
CALayer* subLayer = [CALayer layer];
subLayer.frame = CGRectMake(0, 0, 320, 54);
UIGraphicsBeginImageContext(CGSizeMake(50, 54));
CGContextRef context = UIGraphicsGetCurrentContext();
CGColorSpaceRef colorspace;
CGGradientRef gradient;
CGFloat locations[2] = { 0.0, 1.0 };
CGFloat components[8] = {
1.0, 1.0, 1.0, 1.0,
0.4, 0.4, 0.45, 1.0
};
colorspace = CGColorSpaceCreateDeviceRGB();
gradient = CGGradientCreateWithColorComponents (colorspace, components, locations, 2);
CGContextDrawLinearGradient(context, gradient, CGPointMake(0, 0), CGPointMake(0, 54), 0);
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
subLayer.contents = (id)img.CGImage;
[toolbar.layer addSublayer:subLayer];
toolbar.layer.zPosition = 2000;
toolbar.layer.shadowOpacity = 0.5;
toolbar.layer.shadowOffset = CGSizeMake(-2, -1);
[imagePickerController.cameraOverlayView addSubview:toolbar];
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}
else {
NSLog(@"no camera");
}
}
@end