2012-05-02 5 views
1

Я посмотрел на другое сообщение здесь, в разделе «Переполнение стека», касающееся заднего хода, но мой немного отличается.Back/Forward Swipe Gesture в WebViews

Как я могу реализовать жестов салфетки, чтобы перейти «Назад» и «Вперед», чтобы воздействовать на WebView курсор закончился? Например, если их больше одного, этот жест переходит к соответствующему виду и влияет на него.

Я предполагаю, что это будет следующий код, но я не знаю, как получить методы жест работать:

- (void) backGesture { 
    [(WebView *)self.theWebView goBack]; 
} 

- (void) forwardGesture { 
    [(WebView *)self.theWebView goForward]; 
} 

Где theWebView 'является WebView курсор находится курсор.

Возможно ли это?

+0

Вы можете попробовать использовать 'UISwipeGestureRecognizer'. Вы можете узнать координаты касаний при вызове целевого метода. – jessecurry

+0

Как я понял ниже, это вопрос OS/X, поэтому я добавил этот тег. – mackworth

ответ

2

Ну, вы можете добавить категорию в webView с помощью swipeWithEvent metd, чтобы каждый вид обрабатывал свой собственный салфетки (разновидность с тремя пальцами, прокрутка с двумя пальцами переводится в действия мыши для веб-просмотра).

WebView + addSwipe.h:

#import <WebKit/WebKit.h> 
@interface WebView (addSwipe) 
@end 

WebView + addSwipe.m:

#import "WebView+addSwipe.h" 

@implementation WebView (addSwipe) 

- (void)swipeWithEvent:(NSEvent *)event { 
    CGFloat deltaX = [event deltaX]; 
    if (deltaX > 0) { 
     NSLog(@"goForward %@ ", self); 
     [self goForward]; 
    } else if (deltaX < 0) { 
     NSLog(@"goBack%@ ", self); 
     [self goBack]; 
    } 
} 

@end 

И, если вы были на прошивке, приложите два UISwipeGestureRecognizers на каждый вид; по одному для каждого направления с отдельными действиями:

-(void) backGesture:(UIGestureRecognizer *)sender { 
    [sender.view goBack]; 
} 

-(void) forwardGesture:(UIGestureRecognizer *) sender) 
    [sender.view goForward]; 
} 

с вашим видомконтроллер как цель. Каждому действию жестов будет передан отправитель, поэтому sender.view сообщит вам, какой вид имел в себе салфетки.

Обратите внимание, что на панели управления трекпада в системе, на которой запущена ваша программа, должно быть включено «Три пальца для перемещения».

+0

ok, поэтому отправитель - это то, что я буду использовать для идентификации WebView, однако ваше решение для iOS, я разрабатываю для Mac :), любые идеи? – Cristian

+0

А, простите об этом. Помогает ли обновленная версия? – mackworth

+0

взглянет на него скоро, уже поздно;) Еще раз спасибо! – Cristian

0

Вы можете создавать свои собственные собственные жесты, но вам нужно выполнить прикосновения, коснуться движений и прикосновений. Лучшим способом было бы иметь CGPoint с именем startPoint и второй CGPoint с именем endPoint. Прикосновения начались, вы сохраняете местоположение касания в startPoint. В завершенных концах вы сохраняете конечную точку в endPoint. Чтобы убедиться, что это была спина, сравните значения x двух точек! Вот ссылка на получение штрихов: http://mobile.tutsplus.com/tutorials/iphone/ios-quick-tip-detecting-touches/
Надеюсь, это помогло!