2012-06-29 16 views
6

一堆人有興趣在執行這樣的原生地圖應用程序中發現的iOS的頁面捲曲模式轉變 - 看hereherehere - 但問題似乎並沒有已得到充分回答。所以:實現Google地圖iOS版風格的頁面捲曲的手勢交互

是否有可能在主視圖下顯示頁面捲曲模式,就像iOS 6上的地圖中的情況一樣?我希望通過用手指「捲曲」頂部視圖來實現segue,從而與捲曲產生直接交互的外觀,就像iBooks在同一版本的iOS中一樣。

實現segue本身(如在部分捲曲轉換中)不是問題 - 添加手勢交互(與動態部分剝離)是。

+1

你與UIPageViewController嘗試過嗎?我認爲這允許直接互動。 – Felix

+0

UIPageViewController可以用來顯示地圖中的模態嗎? – NSTJ

+0

不,我想很難再現地圖應用中捲曲的確切行爲。我不知道如何達到固定的捲曲位置。 – Felix

回答

4

這段代碼將這樣的伎倆:XBPageCurl

+0

不錯的工作!我現在在另一個項目上,儘管將盡快檢查。 – NSTJ

0

我不認爲你需要一個OpenGL ES捲曲你的mapView像iOS的5.您可以只實現在QuartzCore framework本身。你可以看到我的代碼,因爲我提到here我也修改了代碼,並嘗試這種

- (void)mapCurl { 
    [UIView animateWithDuration:1.0 
        animations:^{ 
         CATransition *animation = [CATransition animation]; 
         [animation setDuration:0.7]; 
         [animation setTimingFunction:[CAMediaTimingFunction functionWithName:@"default"]]; 
         animation.fillMode = kCAFillModeForwards; 
         [animation setRemovedOnCompletion:NO]; 
         // For curl and uncurl the animation here.. 
         if (!_isCurled) { 
          animation.endProgress = 0.65; 
          animation.type = @"pageCurl"; 
          [_locationMapView.layer addAnimation:animation forKey:@"pageCurlAnimation"]; 
          // _backView is a view behind the mapView 
          [_locationMapView addSubview:_backView];         
         }else { 
          animation.startProgress = 0.35; 
          animation.type = @"pageUnCurl"; 
          [_locationMapView.layer addAnimation:animation forKey:@"pageUnCurlAnimation"]; 
          // _backView is a view behind the mapView 
          [_backView removeFromSuperview]; 
         } 
        } 
    ];      
    _isCurled = (!_isCurled); 
} 
+0

我的壞我應該只是說了iOS 6.它不是我要去的頁面捲曲模式,它是用平移手勢提升地圖視圖的能力,就像在iOS 6中訪問地圖設置的方式一樣。 – NSTJ