こんにちは、カスタム カメラ オーバーレイ ビューをたくさん検索しました。私はほとんど多くのサンプルプロジェクトを見つけましたが、取得したいのでまだ完璧な答えを得ることができません. 私の質問は、カメラオーバーレイビューを使用して、ボタンをクリックしてカスタムカメラを開く、または他のソーシャルネットワーキングアプリの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];
}
instagram
すべて正常に動作していますが、私が言ったように、ビューを変更するためのボタンメソッドと UINavigationController にアクセスしたいのですが、picyou
正しく機能していません.別のビューに移動する方法を教えてもらえますか.?