0

写真とビデオがグリッドビューで親指として表示されるMWPhotoBrowserを使用しています。フルサイズの画像を表示します。画像表示では問題なく動作します。

ビデオ再生用のコードを適用しました

- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser didDisplayPhotoAtIndex:(NSUInteger)index

ビデオを再生するメソッド。MPMoviePlayerViewController を使用してビデオを再生します。ビデオ画像が表示されると、ビデオが直接再生されます

ユーザーの操作によってビデオを再生するために、ビデオ再生ボタンを適用したいと考えています。それを行う可能な方法があれば、提案してください。前もって感謝します。

4

1 に答える 1

4

これは、現在利用可能なデリゲート メソッドでは不可能なので、自分のアプリで自分用に作成しました。

ステップ1:

このファイルを探して、MWPhotoBrowser.h

デリゲート宣言の下、つまり this の下@protocol MWPhotoBrowserDelegate <NSObject>

デリゲートをもう 1 つ追加- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser didSelectedPhotoAtIndex:(NSUInteger)selectedPhotoIndex;します。オプションにします。

また、この関数も宣言し、- (void) singleTapOnCurrentPhoto;

ステップ2:

開いて、次のようMWPhotoBrowser.mに定義してください。- (void) singleTapOnCurrentPhoto

- (void) singleTapOnCurrentPhoto {
    if(self.delegate && [self.delegate respondsToSelector:@selector(photoBrowser:didSelectedPhotoAtIndex:)]) {
        [self.delegate photoBrowser:self didSelectedPhotoAtIndex:self.currentIndex];
    }
}

ステップ 3:

このファイルを探して、MWZoomingScrollView.m

この方法を見つけ、- (void)handleSingleTap:(CGPoint)touchPoint;

このように更新して、

- (void)handleSingleTap:(CGPoint)touchPoint {
    [_photoBrowser performSelector:@selector(singleTapOnCurrentPhoto)];
    [_photoBrowser performSelector:@selector(toggleControls) withObject:nil afterDelay:0.2];
}

ステップ 4:

あなたは終わった!UIViewControllerこのようにクラスで使用できます。

- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser didSelectedPhotoAtIndex:(NSUInteger)selectedPhotoIndex {
    NSLog(@"Photo tapped at index %lu",(unsigned long)selectedPhotoIndex);
}

各ステップの理解:

  • ステップ 1 では、独自のデリゲート メソッドを で動作するように宣言しています。MWPhotoBrowser作成したら、どこかでそれを使用する必要があるためsingleTapOnCurrentPhoto、フォト ブラウザのオブジェクトでそれを呼び出すという名前のメソッドも宣言しています。

  • UIViewControllerステップ 2 では、表示している場所に実装するデリゲートを呼び出しましたMWPhotoBrowser

  • ステップ 3 では、現在の写真がいつタップされるかを知る必要があります (これは Michael によって行われました、ありがとう!)。singleTapOnCurrentPhotoそのため、ユーザーが現在の写真を 1 回タップしたときに関数を呼び出しています。ここではsingleTapOnCurrentPhoto、のオブジェクトを使用して_photoBrowser呼び出しますMWPhotoBrowser

  • ステップ 4 で完了です。これで、そのデリゲートを使用できます。そのため、必要なクラスに実装しています。それで全部です!

于 2014-07-17T11:14:23.423 に答える