使用 AVFoundation 来自定义相机。漂亮、轻量且易于集成到 iOS 项目中。
此库适用于 iOS 7.0+ 操作系统的设备。
了解 使用 TGCameraViewController 的用户 并将您的应用程序添加到列表中。
CocoaPods 是将 TGCameraViewController 添加到项目的推荐方式。
pod 'TGCameraViewController'
pod install
或者您可以直接下载 最新的代码版本,然后将其拖放到项目中 TGCameraViewController 文件夹内。
#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
选项 | 类型 | 默认 | 描述 |
---|---|---|---|
隐藏相机选项切换按钮 | NSNumber (YES/NO) | NO | 显示或隐藏切换前后摄像头的按钮 |
隐藏图片库切换按钮 | NSNumber (YES/NO) | NO | 显示或隐藏允许用户从相册选择照片的按钮 |
隐藏滤镜按钮 | NSNumber (YES/NO) | NO | 显示或隐藏允许用户过滤照片的按钮 |
保存照片到相册 | NSNumber (YES/NO) | NO | 是否将照片保存到相机胶卷 |
#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适用于iOS 7.0+版本,且与ARC项目兼容。它依赖于以下Apple框架,这些框架通常已包含在大多数Xcode模板中
为了构建TGCameraViewController,您需要LLVM 3.0或更高版本。
本代码根据MIT许可的条款和条件进行分发。
每个TGCameraViewController发布的简要总结可以在发布中找到。