TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Feb 2016 |
Maintained by Eddie Li.
Custom camera with AVFoundation. Beautiful, light and easy to integrate with iOS projects.
This library can be applied on devices running iOS 7.0+.
Find out who uses TGCameraViewController and add your app to the list.
CocoaPods is the recommended way to add TGCameraViewController to your project.
pod 'TGCameraViewController'
pod install
Alternatively you can directly download the latest code version add drag and drop all files at TGCameraViewController folder onto your project.
#import "TGCameraViewController.h"
@interface TGViewController : UIViewController <TGCameraDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *photoView;
- (IBAction)takePhotoTapped;
@end
@implementation TGViewController
- (IBAction)takePhotoTapped
{
TGCameraNavigationController *navigationController =
[TGCameraNavigationController newWithCameraDelegate:self];
[self presentViewController:navigationController animated:YES completion:nil];
}
#pragma mark - TGCameraDelegate optional
- (void)cameraWillTakePhoto
{
NSLog(@"%s", __PRETTY_FUNCTION__);
}
- (void)cameraDidSavePhotoAtPath:(NSURL *)assetURL
{
// When this method is implemented, an image will be saved on the user's device
NSLog(@"%s album path: %@", __PRETTY_FUNCTION__, assetURL);
}
- (void)cameraDidSavePhotoWithError:(NSError *)error
{
NSLog(@"%s error: %@", __PRETTY_FUNCTION__, error);
}
#pragma mark - TGCameraDelegate required
- (void)cameraDidCancel
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)cameraDidTakePhoto:(UIImage *)image
{
_photoView.image = image;
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)cameraDidSelectAlbumPhoto:(UIImage *)image
{
_photoView.image = image;
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
#import "TGCameraViewController.h"
@interface TGViewController : UIViewController
<UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *photoView;
- (IBAction)chooseExistingPhotoTapped;
@end
@implementation TGViewController
- (IBAction)chooseExistingPhotoTapped
{
UIImagePickerController *pickerController =
[TGAlbum imagePickerControllerWithDelegate:self];
[self presentViewController:pickerController animated:YES completion:nil];
}
#pragma mark - UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
_photoView.image = [TGAlbum imageWithMediaInfo:info];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
@implementation TGViewController
- (void)viewDidLoad
{
[super viewDidLoad];
UIColor *tintColor = [UIColor greenColor];
[TGCameraColor setTintColor:tintColor];
}
@end
Option | Type | Default | Description |
---|---|---|---|
kTGCameraOptionHiddenToggleButton | NSNumber (YES/NO) | NO | Displays or hides the button that switches between the front and rear camera |
kTGCameraOptionHiddenAlbumButton | NSNumber (YES/NO) | NO | Displays or hides the button that allows the user to select a photo from his/her album |
kTGCameraOptionHiddenFilterButton | NSNumber (YES/NO) | NO | Displays or hides the button that allos the user to filter his/her photo |
kTGCameraOptionSaveImageToAlbum | NSNumber (YES/NO) | NO | Save or not the photo in the camera roll |
#import "TGCamera.h"
@implementation UIViewController
- (void)viewDidLoad
{
//...
[TGCamera setOption:kTGCameraOptionHiddenToggleButton value:[NSNumber numberWithBool:YES]];
[TGCamera setOption:kTGCameraOptionHiddenAlbumButton value:[NSNumber numberWithBool:YES]];
[TGCamera setOption:kTGCameraOptionHiddenFilterButton value:[NSNumber numberWithBool:YES]];
[TGCamera setOption:kTGCameraOptionSaveImageToAlbum value:[NSNumber numberWithBool:YES]];
//...
}
- (IBAction)buttonTapped
{
//...
BOOL hiddenToggleButton = [[TGCamera getOption:kTGCameraOptionHiddenToggleButton] boolValue];
BOOL hiddenAlbumButton = [[TGCamera getOption:kTGCameraOptionHiddenAlbumButton] boolValue];
BOOL hiddenFilterButton = [[TGCamera getOption:kTGCameraOptionHiddenFilterButton] boolValue];
BOOL saveToDevice = [[TGCamera getOption:kTGCameraOptionSaveImageToAlbum] boolValue];
//...
}
@end
TGCameraViewController works on iOS 7.0+ version and is compatible with ARC projects. It depends on the following Apple frameworks, which should already be included with most Xcode templates:
You will need LLVM 3.0 or later in order to build TGCameraViewController.
This code is distributed under the terms and conditions of the MIT license.
A brief summary of each TGCameraViewController release can be found on the releases.