- December 17, 2024
- Mins Read
AVFoundation.Framework
library in your project, click on your project’s target, navigate to Build Phases, then go to Link Binary With Libraries, click on the + and add the AVFoundation.Framework.CustomizableCamera
folder into your Xcode project."CameraSessionView.h"
to the view controller that will invoke the camera.
@property (nonatomic, strong) CameraSessionView *cameraView;
Now in the place where you would like to invoke the camera view (on the action of a button or viewDidLoad) instantiate it, set it’s delegate and add it as a subview:
_cameraView = [[CameraSessionView alloc] initWithFrame:self.view.frame];
_cameraView.delegate = self;
[self.view addSubview:_cameraView];
Now implement one of this two delegate functions depending on whether you would like to get back a UIImage
or NSData
for an image when the shutter on the camera is pressed,
For a UIImage:
-(void)didCaptureImage:(UIImage *)image {
//Use the image that is received
}
For NSData:
-(void)didCaptureImageWithData:(NSData *)imageData {
//Use the image’s data that is received
}
You can hide the camera view either by pressing the dismiss button on it or by writing [self.cameraView removeFromSuperview];
on the invoking view controller (it can be written inside one of the two delegate functions in order to dismiss it after taking a photo).
Once you have your CameraSessionView
instance you can customize the appearance of the camera using its api, below are some samples:
To change the color of the top bar including its transparency:
[_cameraView setTopBarColor:[UIColor colorWithRed:0.97 green:0.97 blue:0.97 alpha: 0.64]];
To hide the flash button:
[_cameraView hideFlashButton]; //On iPad flash is not present, hence it wont appear.
To hide the switch camera’s button:
[_cameraView hideCameraToogleButton];
To hide the dismiss button:
[_cameraView hideDismissButton];x
If no customization is made, the camera view will use its default look.
You can find a full example on usage and customization on the Xcode project attached to this repository.
A vertical stackview which takes subviews with different widths and adds them to it's rows with paddings, spacings etc.
AudioManager is a Swift package that provides a modular and easy-to-use interface for implementing audio feedback in your applications. It ...