簡體   English   中英

iOS創建滑動返回

[英]iOS creating swipe to go back

我想像iOS 7中那樣進行反擊。我對整個iOS開發仍然是新的,這就是我目前使用的。
目前我有一個平移手勢,可以檢測用戶是否向后滑動然后只是彈出導航控制器。

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[self.view addGestureRecognizer:pan];


-(void)handlePan:(UIPanGestureRecognizer *)sender{
    CGPoint tran = [recognizer translationInView:recognizer.view];
    CGPoint vel = [recognizer velocityInView:recognizer.view];
    if(vel.x > 500 && tran.x > 100){
        [self.navigationController popViewControllerAnimated:YES];
    }
}

我希望以前的視圖跟隨手指在平移手勢上,而不是只是將pop調用到root。 例如,

SecondView在視圖之間滑動的firstView

這將需要一個自定義容器視圖控制器。 簡單來說,你有一個視圖控制器,它可以容納2個視圖控制器(左邊是視圖1,右邊是視圖2)。

將平移手勢附加到容器視圖,當用戶移動時,您可以為每個子視圖控制器計算適當的幀。 例如,如果用戶向右平移,則將視圖2向右移動,並從左側顯示視圖1(根據需要調用子視圖控制器方法)。

手勢完成后,您應該檢查最終位置以及平移的最終方向,以決定放置視圖控制器的位置。 例如,如果您在屏幕上的視圖1的90%右側完成平移,則應在屏幕上完全移動視圖1並在屏幕上查看2。 如果你用50%的每個完成,你應該使用平移的方向來決定哪個視圖將保留在屏幕上。

使用IIViewDeckController它更容易,它可以做你想要的IIViewDeck GitHub

我想在這種情況下你應該使用UIScrollView,將滾動視圖的內容大小設置為width_of_view * numberOfViews並將所有視圖水平添加到滾動視圖。 當用戶在屏幕上滾動或滑動手指而不是顯示下一個視圖時。 這里有一個Apple Doc鏈接可以幫到你。 不要忘記在XIB或代碼中設置水平滾動啟用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM