Как создать вид наложения для камеры и получить доступ к его методам в iphone SDK?
Привет, я искал много для пользовательского вида наложения камеры. Я нашел почти много примеров проектов, но я все еще не могу получить идеальный ответ, как я хочу получить. Мой вопрос, я хочу реализовать пользовательские камеры, такие как instagram
или же picyou
или другие приложения для социальных сетей при нажатии кнопки открыть пользовательскую камеру, используя вид наложения камеры. Я создал пользовательскую камеру, она работает нормально, но я хочу получить доступ к действиям кнопок, как при захвате изображения, он должен перейти в другой вид с помощью UINavigationController
но он не работает. Я использовал этот код для вызова наложения камеры.
-(void)OpenCamera
{
//create an overlay view instance
OverlayView *overlay = [[OverlayView alloc]
initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
// picker.allowsEditing = YES;
picker.allowsEditing = NO;
if (([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]))
{
//set source to video!
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
//hide all controls
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
picker.toolbarHidden = YES;
//make the video preview full size
picker.wantsFullScreenLayout = YES;
picker.cameraViewTransform =
CGAffineTransformScale(picker.cameraViewTransform,
CAMERA_TRANSFORM_X,
CAMERA_TRANSFORM_Y);
//set our custom overlay view
picker.cameraOverlayView = overlay;
// picker.delegate = overlay;
// UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:picker];
//show picker
[self presentModalViewController:picker animated:YES];
}
else
{
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
picker.delegate = self;
[self presentModalViewController:picker animated:YES];
}
[picker release];
}
и это мой код наложения вида.m, который я использовал @interface OverlayView : UIView
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
//clear the background color of the overlay
// self.opaque = NO;
// self.backgroundColor = [UIColor clearColor];
UIToolbar *toolbar = [UIToolbar new];
toolbar.barStyle = UIBarStyleBlackTranslucent;
// create a bordered style button with custom title
UIBarButtonItem *Cancel = [[[UIBarButtonItem alloc] initWithTitle:@"Cancel"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(btnCancel:)] autorelease];
UIBarButtonItem *flexibleSpace1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *Camera = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(btnCapture:)] autorelease];
UIBarButtonItem *flexibleSpace2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *Album = [[[UIBarButtonItem alloc] initWithTitle:@"Gallery"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(btnLibrary:)] autorelease];
NSArray *items = [NSArray arrayWithObjects:
Cancel,
flexibleSpace1,
Camera,
flexibleSpace2,
Album,
nil];
toolbar.items = items;
// size up the toolbar and set its frame
// please not that it will work only for views without Navigation toolbars.
[toolbar sizeToFit];
CGFloat toolbarHeight = [toolbar frame].size.height;
CGRect mainViewBounds = self.bounds;
[toolbar setFrame:CGRectMake(CGRectGetMinX(mainViewBounds),
CGRectGetMinY(mainViewBounds) + CGRectGetHeight(mainViewBounds) - (toolbarHeight),
CGRectGetWidth(mainViewBounds),
toolbarHeight)];
[self addSubview:toolbar];
}
return self;
}
-(void)btnLibrary:(id)sender
{
}
-(void)btnCapture:(id)sender
{
}
-(void)btnCancel:(id)sender
{
// [self dismissModalViewControllerAnimated:YES];
}
все работает нормально, но, как я уже сказал, я хочу получить доступ к методам кнопок и UINavigationController для изменения вида, как instagram
а также picyou
это не работает должным образом, вы можете указать мне, как перейти к другому виду.