From a47da4d9f0210b13448cdb2452a2e0d17e2ad477 Mon Sep 17 00:00:00 2001 From: makowildcat Date: Thu, 10 Apr 2014 12:13:01 +0200 Subject: [PATCH] Image navigation. --- Flikrkr/ReaderView.m | 52 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/Flikrkr/ReaderView.m b/Flikrkr/ReaderView.m index 3327699..7728b5c 100644 --- a/Flikrkr/ReaderView.m +++ b/Flikrkr/ReaderView.m @@ -8,6 +8,12 @@ #import "ReaderView.h" +@interface ReaderView () + +@property (nonatomic, assign) int currentIndex; + +@end + @implementation ReaderView - (id)initWithFrame:(CGRect)frame @@ -20,16 +26,44 @@ } /* -// Only override drawRect: if you perform custom drawing. -// An empty implementation adversely affects performance during animation. -- (void)drawRect:(CGRect)rect -{ - // Drawing code -} -*/ + // Only override drawRect: if you perform custom drawing. + // An empty implementation adversely affects performance during animation. + - (void)drawRect:(CGRect)rect + { + // Drawing code + } + */ -(void)displayPageAtIndex:(int)index { - UIView * view = [self.delegate pageAtIndex:index]; - [self addSubview:view]; + if (index >= 0 && index < [self.delegate numberOfPages]) { + UIView * view = [self.delegate pageAtIndex:index]; + [self addSubview:view]; + self.currentIndex = index; + } +} +- (void)layoutSubviews +{ + if (!self.gestureRecognizers.count) { + UISwipeGestureRecognizer * previousPageRecognizer = + [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(previousPage)]; + previousPageRecognizer.direction = UISwipeGestureRecognizerDirectionRight; + [self addGestureRecognizer:previousPageRecognizer]; + + UISwipeGestureRecognizer * nextPageRecognizer = + [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(nextPage)]; + nextPageRecognizer.direction = UISwipeGestureRecognizerDirectionLeft; + [self addGestureRecognizer:nextPageRecognizer]; + + self.userInteractionEnabled = YES; + } +} + +- (void) previousPage +{ + [self displayPageAtIndex:self.currentIndex-1]; +} +- (void) nextPage +{ + [self displayPageAtIndex:self.currentIndex+1]; } @end