代码拉取完成,页面将自动刷新
用完全自定义的方式来实现相机的拍照功能,并实现了在拍照前的签名、修改签名文字的大小、修改签名文字的颜色、前后摄像头的切换以及对拍完的照片进行分享等功能
项目功能介绍:
1️⃣ 用完全自定义的方式来实现相机的拍照功能;
2️⃣ 实现在拍照之前可以向照片界面添加签名效果;
3️⃣ 通过PopOver的方式来实现在签名前后可以对签名字体大小进行选择的功能;
4️⃣ 通过PopOver的方式实现在签名前后可以对签名字体颜色进行选择的功能;
5️⃣ 通过拍照是否完成来控制“签名"、“字体大小”、“字体颜色”按钮是否可用功能;
6️⃣ 通过“相机翻转”按钮来实现前后摄像头的切换功能;
7️⃣ 集成ShareSDK来实现对当前所拍的带有签名的照片进行分享的功能;
8️⃣ 通过点击“关闭”按钮来实现自定义相机的显示和隐藏功能;
9️⃣ 实现对拍完照后的照片保存到相册的功能;
🔟 对以上的功能进行了封装和抽取,可以单独使用,只需导入一个头文件进行控制器的布局就可以了;
在主控制器中实现的代码:
//
// XGMainViewController.m
// XGCustomCamera
//
// Created by 小果 on 2016/12/6.
// Copyright © 2016年 小果. All rights reserved.
//
#import "XGMainViewController.h"
#import "XGCameraController.h"
@implementation XGMainViewController{
UIButton *_openCameraBtn;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setupOpenCameraBtn];
}
-(void)setupOpenCameraBtn{
_openCameraBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 150)];
_openCameraBtn.center = self.view.center;
[self.view addSubview:_openCameraBtn];
[_openCameraBtn setImage:[UIImage imageNamed:@"Camera"] forState:UIControlStateNormal];
[_openCameraBtn addTarget:self action:@selector(openCamera) forControlEvents:UIControlEventTouchUpInside];
}
-(void)openCamera{
XGCameraController *cameraVC = [XGCameraController new];
[self presentViewController:cameraVC animated:YES completion:nil];
}
@end
通过PopOVer的方式实现字体大小和颜色选择的相关代码:
-(void)xg_addChangeSignWithFontColor:(UIButton *)sender{
XGSwitchColorController *switchColor = [XGSwitchColorController new];
switchColor.xg_BgColor = ^(UIColor *cellColor){
_waterLable.textColor = cellColor;
_popSwitchFontColor = cellColor;
};
[self xg_setupPopViewWithAttribute:switchColor andView:sender];
}
-(void)xg_changeSignatureWithFontSize:(UIButton *)sender{
XGSwitchFontSizeController *switchSize = [XGSwitchFontSizeController new];
switchSize.xg_FontSize = ^(NSInteger fontSize){
_waterLable.font = [UIFont systemFontOfSize:fontSize];
textSize = fontSize;
};
[self xg_setupPopViewWithAttribute:switchSize andView:sender];
}
-(void)xg_setupPopViewWithAttribute:(UIViewController *)vc andView:(UIView *)view{
vc.modalPresentationStyle = UIModalPresentationPopover;
vc.preferredContentSize = CGSizeMake(60, 200);
vc.popoverPresentationController.delegate = self;
vc.popoverPresentationController.sourceView = view;
vc.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionDown;
CGSize size = view.bounds.size;
vc.popoverPresentationController.sourceRect = CGRectMake(size.width * 0.5, -5, 0, 0);
[self presentViewController:vc animated:YES completion:nil];
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型