Skip to content

Commit d578ddc

Browse files
committed
Merge branch 'master' into V2EX
2 parents d9de171 + 5cd048c commit d578ddc

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

WebAppWrapper/RootViewController.m

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ @interface RootViewController () <UIWebViewDelegate, UIAlertViewDelegate>
3030

3131
@property (nonatomic, strong) UIWebView *webView;
3232

33+
@property (nonatomic, weak) UIPanGestureRecognizer *panGestureRecognizer;
34+
3335
- (void)showFailLoadWarning;
3436

3537
- (void)loadStartPage;
@@ -38,6 +40,8 @@ - (void)failRefresh;
3840

3941
- (void)configure;
4042

43+
- (void)panGestureReceived:(UIPanGestureRecognizer *)panGestureRecognizer;
44+
4145
@end
4246

4347
@implementation RootViewController
@@ -138,6 +142,12 @@ - (void)viewDidLoad
138142
self.webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
139143
UIViewAutoresizingFlexibleHeight);
140144
[self.view addSubview:self.webView];
145+
146+
// Init & add pan gesture recognizer.
147+
148+
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureReceived:)];
149+
self.panGestureRecognizer = panGestureRecognizer;
150+
[self.webView addGestureRecognizer:panGestureRecognizer];
141151
}
142152

143153
- (void)viewDidAppear:(BOOL)animated
@@ -155,6 +165,29 @@ - (void)didReceiveMemoryWarning
155165
// Dispose of any resources that can be recreated.
156166
}
157167

168+
#pragma mark - Gesture recognizer
169+
170+
- (void)panGestureReceived:(UIPanGestureRecognizer *)panGestureRecognizer
171+
{
172+
if (panGestureRecognizer == self.panGestureRecognizer) {
173+
UIGestureRecognizerState state = panGestureRecognizer.state;
174+
CGPoint translation = [panGestureRecognizer translationInView:panGestureRecognizer.view];
175+
if (state == UIGestureRecognizerStateEnded &&
176+
ABS(translation.x / translation.y) > 3.0f) {
177+
// Horizontal swipe.
178+
if (translation.x > 0 &&
179+
self.webView.canGoBack) {
180+
// Go back.
181+
[self.webView goBack];
182+
} else if (translation.x < 0 &&
183+
self.webView.canGoForward) {
184+
// Go forward.
185+
[self.webView goForward];
186+
}
187+
}
188+
}
189+
}
190+
158191
#pragma mark - Web view delegate
159192

160193
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

0 commit comments

Comments
 (0)