これは、現在利用可能なデリゲート メソッドでは不可能なので、自分のアプリで自分用に作成しました。
ステップ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 で完了です。これで、そのデリゲートを使用できます。そのため、必要なクラスに実装しています。それで全部です!