4

我想做一個像iOS 7中的刷卡一樣。我對整個iOS開發仍然是新的,這是我目前使用的。
目前我有一個平移手勢,用於檢測用戶是否向後滑動,然後彈出導航控制器。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]; 
    } 
} 

我想上一個視圖遵循的移動手勢手指,而不是僅僅調用流行到根。例如,

SecondViewSwiping between the viewsFirstView

+3

這不能使用'UINavigationController'來實現。你將不得不推出你自己的控制器導航系統(一個話題太廣泛,無法在單個堆棧溢出問題中得到解答) – borrrden

+0

該死的好吧,無論如何,你有任何鏈接或教程我可以遵循? – user1838169

+0

沒有。儘管如此,你可以從stevo的回答中得到一般想法。嘗試實施它,然後回來,如果你卡住了,並提出一個新的問題。 – borrrden

回答

9

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

將平移手勢附加到容器視圖,並且當用戶移動時,計算每個子視圖控制器的相應框架。例如。如果用戶正在平移到右側,則會將視圖2向右移動,並從左側將視圖1(根據需要調用子視圖控制器方法)。

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

+1

+1良好的整體解釋! – borrrden

0

我覺得在這種情況下,你應該使用UIScrollView的內容,設置滾動視圖的內容大小width_of_view * numberOfViews並添加所有以滾動水平查看。當用戶在屏幕上滾動或滑動手指而不是顯示下一個視圖時。這裏有一個Link of apple Doc會幫助你。不要忘記在XIB或代碼中設置橫向滾動啓用。