我正在製作一個簡單的webView iOS 7應用程序,我希望用戶能夠向左或向右滑動以在網頁上向前或向後滑動。就像你可以在iOS中使用Safari一樣。iOS webView向左或向右滑動瀏覽
我認爲它被稱爲分頁 - 但我不知道如何使用它。我怎樣才能實現這個?我是一個小菜,所以如果你能一步一步告訴我,我會很感激。
感謝
我正在製作一個簡單的webView iOS 7應用程序,我希望用戶能夠向左或向右滑動以在網頁上向前或向後滑動。就像你可以在iOS中使用Safari一樣。iOS webView向左或向右滑動瀏覽
我認爲它被稱爲分頁 - 但我不知道如何使用它。我怎樣才能實現這個?我是一個小菜,所以如果你能一步一步告訴我,我會很感激。
感謝
我工作的一個類似的功能在我的應用程序,這是我到目前爲止已經想通了 - 我還沒有完成,但這裏的上手方式。
首先,我假設你正在開發針對iOS 7只 - 而這是完全可能建立本作的iOS 6,你可以採取幾個整齊的快捷方式,如果您只爲7
發展前進/後退手勢使用進行處理。您將其添加到Web視圖中,如下所示:
UIScreenEdgePanGestureRecognizer *bezelSwipeGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(swipeBack:)];
bezelSwipeGestureRecognizer.edges = UIRectEdgeLeft;
bezelSwipeGestureRecognizer.delegate = self;
[self.view addGestureRecognizer:bezelSwipeGestureRecognizer];
UIView *invisibleScrollPreventer = [UIView new];
invisibleScrollPreventer.frame = CGRectMake(0, 0, 10, self.view.frame.size.height);
[self.view addSubview:invisibleScrollPreventer];
這會添加反向滑動手勢。棘手的部分是,invisibleScrollPreventer - 這是一個不完美的黑客攻擊,但它可以避免滾動你的web視圖,而不是做後退動作。 (有可能是一個更好的方式來處理,但是這是我目前的解決方案。)
在你swipeBack:
方法,你會做類似如下:
-(void)swipeBack:(UIScreenEdgePanGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateEnded) {
if (_webView.canGoBack) {
[_webView goBack];
}
}
}
你會做這些相同的事情將goForward:
方法添加到您的網頁視圖中。
real就像在iOS 7中的Safari中一樣,獲取您要返回(或轉發)顯示在屏幕上的網頁會在屏幕上向後或向前滑動顯示。我不是100 %確定如何做到這一點(我還沒有在我的應用程序中構建該功能,但我很快就會完成),我猜這是一個應用了一些變暗的iOS 7 snapshotView。
根據你選擇建立這個的方式,你可能也想看看custom navigation transitions in iOS 7。我不知道這是否是這個問題所需要的,但可能是這樣。
祝你好運!
好的謝謝你!我應該知道這一點,但我在哪裏放這些代碼片段? .m或.h? – jryankennedy
所有的代碼都會放在你的.m文件中 - 如果你對.h和.m文件感到困惑,請查看這個Stack Overflow問題:http://stackoverflow.com/questions/2619048/concise-description -of-how-h-and-m-files-interact-in-objective-c – bryanjclark
代表是什麼? –
override func viewDidLoad() {
super.viewDidLoad()
let url = NSURL(string: "https://www.whatever.com")
let requestObj = NSURLRequest(URL: url!)
myWebView.loadRequest(requestObj)
//swipe left or right to go back or foward
var leftSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))
var rightSwipe = UISwipeGestureRecognizer(target: self, action: Selector("handleSwipes:"))
leftSwipe.direction = .Left
rightSwipe.direction = .Right
view.addGestureRecognizer(leftSwipe)
view.addGestureRecognizer(rightSwipe)
}
//swipe left to go forward
func handleSwipes(sender:UISwipeGestureRecognizer) {
if (sender.direction == .Left) {
myWebView.goForward()
}
//swipe right to go backward
if (sender.direction == .Right) {
myWebView.goBack()
}
}
用''''在NSURL(string:)'構造函數中替換引號字符(它將修復代碼高亮顯示) – werediver
歡迎來到Stack Overflow!儘管此代碼可能回答此問題,但最好包含一些_context_, _how_它的工作原理和_when_使用它。從長遠來看,僅有代碼的答案是沒有用的。 –
代碼自己在說話) –
什麼是WEBVIEW HTML或PDF中的內容? –
考慮使用'UINavigationController'。它已經支持從左到右滑動,所以你只需要增加對相反方向滑動的支持。這個答案應該讓你開始:http://stackoverflow.com/questions/5891432/swipe-back-and-forward-on-navigationcontroller – Macondo2Seattle