5

Facebook やパスと同様に、カメラ ロール ピッカー内に UIImagePickerController を含めるにはどうすればよいでしょうか (スクリーンショットを参照)。これを達成する方法についてのコードを具体的に探しているのではなく、正しい方向に向けられることを望んでいます..ありがとう!

ここに画像の説明を入力

4

1 に答える 1

2

私の推測では、彼らは a を使用し、 の最初のUICollectionViewものをチェックしています。が最初のセルを作成するとき、そのセルに、押されたときに表示されるボタンが指定されています。UICollectionViewCellcollectionView:cellForItemAtIndexPath:UICollectionViewDelegateUIImagePickerController

重要:

追加のセルを使用して独自のフォト ブラウザーを設計する場合は、UICollectionViewDataSource メソッドの項目数を +1 してください。

例えば

- (void)showImagePicker:(id)sender
{
    // Present the UIImagePickerController
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return [self.photos count] + 1;
}    

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0)
    {
        // You could also just as easily add a button to a UICollectionViewCell
        // Instead of creating a custom subclass.
        CameraButtonCell * cell = ...;
        [cell.button addTarget:self action:@selector(showImagePicker:) forControlEvents:UIControlEventTouchUpInside];

        return cell;
    }

    UICollectionViewCell * cell = ...;

    return cell;
}

これは、彼らが独自のアルバムを作成し、デフォルトのカメラ ロールを使用していないという前提に基づいています。また、私はFacebookやパスを使用していないので、そのアルバムがどのように表示されているかわかりません. つまり、UIImagePickerController内からカメラロールボタンを押したときにそのアルバムが表示されるかどうかはわかりません。その場合、Facebook はプライベート API にアクセスできるか、独自のカメラ オーバーレイを使用してカスタム アルバムを表示している可能性が高くなります。

カスタム カメラ オーバーレイを実装する Apple のサンプル コードを次に示します。

https://developer.apple.com/library/ios/samplecode/PhotoPicker/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010196

編集:

さらに調査した結果、これを実現するには独自のフォト ブラウザを作成する必要があるようです。UIImagePickerController クラスリファレンスによると:

フォト ライブラリを参照するための完全にカスタマイズされた画像ピッカーを作成するには、Assets Library フレームワークのクラスを使用します。たとえば、より大きなサムネイル画像を表示したり、タイムスタンプや位置情報を含む EXIF メタデータを利用したり、Map Kit などの他のフレームワークと統合したりするカスタム イメージ ピッカーを作成できます。詳細については、アセット ライブラリ フレームワーク リファレンスを参照してください。アセット ライブラリ フレームワークを使用したメディア ブラウジングは、iOS 4.0 以降で利用できます。

したがって、理論的には、アセット ライブラリを使用して独自のフォト ブラウザーを作成し、カメラ ロールから画像を読み込み、UIImagePickerController を表示する最初の (または任意の) セルにボタンを挿入することができます。

参照:

完全にカスタマイズされたメディア キャプチャとブラウジング

https://developer.apple.com/library/ios/documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

幸運を!うまくいけば、これが役に立ちます!

于 2014-05-01T17:39:01.703 に答える