2016-03-25 9 views
0

PHPhotoLibraryやALAssetsLibrary経由でアルバムから写真を取得し、instagramのようにuicollectionviewcellにインストールするには、実際のバージョンやアイデアはありません。私はObjective Cのに新たなんだ:)カメラのロールから写真を選ぶ方法

インストールしていない - 私はあなたが「uicollectionviewcellためにインストール」で何を意味するかわからないんだけど、ここで、あなたのアルバムから写真を取得する方法をです

+0

は、多分私は右の質問を提起していませんよ。 ViewControllerがImagePickerに頼らずに開くと、 – m9st

答えて

4

を追加します。

  1. 承認
  2. を求める(私たちのために作成されたデフォルトのイメージピッカービューのりんごである)UIImagePickerController
  3. はUIImagePickerController

コードから撮像した画像を処理するためのデリゲートメソッドを実装し表示されるでしょう

インポートステートメント:

#import <Photos/Photos.h> 

表示するには画像ピッカーコントローラをインスタンス化:

UIImagePickerController* imagePicker = [[UIImagePickerController alloc]init]; 
// Check if image access is authorized 
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { 
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    // Use delegate methods to get result of photo library -- Look up UIImagePicker delegate methods 
    imagePicker.delegate = self; 
    [self presentViewController:imagePicker animated:true completion:nil]; 
} 

私は、これは通常のフォトライブラリにアクセスするためのユーザを促すだろうが、それは常に前に、単純にしようとするために、認可のすべてのケースを処理することをお勧めだと信じてimagepickerを表示します。

承認を求める:

PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; 
    if(status == PHAuthorizationStatusNotDetermined) { 
     // Request photo authorization 
     [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { 
      // User code (show imagepicker) 
    }]; 
    } else if (status == PHAuthorizationStatusAuthorized) { 
     // User code 
    } else if (status == PHAuthorizationStatusRestricted) { 
     // User code 
    } else if (status == PHAuthorizationStatusDenied) { 
     // User code 
    } 

は最後にデリゲートメソッドを実装する:あなたは、あなたのイメージを選択

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    UIImage *image = info[UIImagePickerControllerOriginalImage]; 
    // Do something with picked image 
} 

した後は、新たにインスタンス化されたUICollectionViewControllerに追加することができます。これはおそらく他の質問全体であり、あなたはこれに関する文書を読む方が良いでしょう。 これはIOS8で導入​​されたことに注意してください(私は思っていますか?)が、ALのルートコードは上記と似ています。


を追加しました

フォトライブラリには、ちょうど別のデータベースですが、あなたはまだ承認をユーザーに依頼する必要があり。次のように 手順は次のようになります。

  1. は、私は自分自身#2をやったが、それを行う方法があるように思われていない写真のライブラリから

を写真を取得し、認可

  • を求めます。

    Get all of the pictures from an iPhone photoLibrary in an array using AssetsLibrary framework?

    ザッと見てから、これは非同期関数であるようにあなたがそれに応じてコーディングする必要がありますので、それは(私があなただったら、私は、各UICollectionViewCell内requestImage関数を呼び出します)ようです。

    問題が発生した場合は、コメントを残してください。 幸運!あなたは

    は、そのはあなたに多くのことができます願っています...このようにデリゲートUIImagePickerControllerDelegate

    を宣言する必要が

  • +0

    のようなアルバムからUICollectionViewCellの写真を埋めなければならないかもしれません。 ViewControllerがImagePickerに頼らなくても、アルバムからUICollectionViewCellの写真を塗りつぶす必要があります(このように)(https://pp.vk.me/c630917/v630917473/23494/3GpCH5S502M.jpg) – m9st

    +0

    どうもありがとうございます)) – m9st

    +0

    私のコードが悪いので、一度に画像を追加する方法を説明します。)[第1部](https://pp.vk.me/c631129/v631129473/24a93/sEra0zWN23s.jpg ) [2番目の部分](https://pp.vk.me/c631129/v631129473/24a9d/G6l3ULctLEo.jpg) – m9st

    0

    は...

    - (IBAction)captureImagehandler:(id)sender 
    { 
        if (! [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
    
        UIAlertView *deviceNotFoundAlert = [[UIAlertView alloc] initWithTitle:@"No Device" message:@"Camera is not available" 
                      delegate:nil 
                    cancelButtonTitle:@"exit" 
                     otherButtonTitles:nil]; 
        [deviceNotFoundAlert show]; 
    
    } 
    else 
    { 
    
        UIImagePickerController *cameraPicker = [[UIImagePickerController alloc] init]; 
        cameraPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
        cameraPicker.delegate =self; 
        // Show image picker 
        [self presentViewController:cameraPicker animated:YES completion:nil]; 
    } 
    } 
    
    +0

    このスニペットはうんざりされていますが、質問の内容を尋ねることはありません。 –

    関連する問題