Реализация функции фотосъёмки с помощью полностью настраиваемой камеры, а также добавление подписи перед съёмкой, изменение размера и цвета текста подписи, переключение между передней и задней камерами и обмен сделанными фотографиями.
Описание функций проекта: 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];
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )