测试测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2017年1月 |
由 Bruno Tortato Furtado 和 Mario Cecchi 维护。
具有 AVFoundation 的自定义相机。美观、轻量且易于与 iOS 项目集成。支持 Objective-C 和 Swift。
要求:iOS 8 或更高版本。
查找 谁在使用 TGCameraViewController 并将您的应用程序添加到列表中。
CocoaPods 是将 TGCameraViewController 添加到您的项目的推荐方式。
在您的 Podfile 中添加 TGCameraViewController 的 pod
项
pod 'TGCameraViewController'
运行以下命令以安装 pod:
pod install
或者,您可以直接下载最新的代码版本 master.zip 并将其导入到项目中。
如果您使用 iOS 10 或更高版本构建应用程序,您需要在应用程序的 Info.plist 中添加两个隐私密钥,以允许使用相机和照片库,否则您的应用程序将崩溃。
将以下键添加到您的 Info.plist 文件中 <dict>
标签,用您希望用于提示用户的描述替换字符串
<key>NSPhotoLibraryUsageDescription</key>
<string>Enable Photos access to import photos from your library.</string>
<key>NSCameraUsageDescription</key>
<string>Enable Camera to take photos.</string>
以下是使用 Objective-C 的一些示例。您可以克隆项目以找到 Objective-C 和 Swift 3 的示例项目。如果您需要 Swift 2.3 的示例,请参考版本 2.2.5。
#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
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
kTGCameraOptionHiddenToggleButton | NSNumber (YES/NO) | NO | 显示或隐藏切换前后摄像头的按钮 |
kTGCameraOptionHiddenAlbumButton | NSNumber (YES/NO) | NO | 显示或隐藏允许用户从其相册中选择照片的按钮 |
kTGCameraOptionHiddenFilterButton | NSNumber (YES/NO) | NO | 显示或隐藏允许用户过滤其照片的按钮 |
kTGCameraOptionSaveImageToAlbum | 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 8.0+ 版本,兼容 ARC 项目。它依赖于以下苹果框架,这些框架应已包含在大多数 Xcode 模板中
为了构建 TGCameraViewController,您需要 LLVM 3.0 或更高版本。
此代码根据 MIT 许可证 的条款和条件进行分发。
每个 TGCameraViewController 版本的简要总结可以在 发布记录 中找到。