4

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

4

0 に答える 0