1

摘要: 我想實現泛姿態,作品就像蘋果的默認平移回退姿勢(interactivePopGestureRecognizer)。唯一的區別是它會一直回退到splitview控制器的主視圖,而不是隻返回堆棧中的一個視圖。這是用popToRootViewController完成的。將當前視圖後面一個完全不同的觀點

什麼我可以做目前: 我的UIScreenEdgePanGestureRecognizer的子類是能夠按照用戶的觸摸和動畫到正確的位置基於他們解除他們的手指。也就是說,如果他們只是將視圖稍微移動了一下,它就會回到原來的位置,手勢識別器被重置。如果用戶將其向右移動得足夠遠並放開(經過比屏幕中途略小的閾值),則視圖從屏幕的右側滑落,並且主視圖滑入視圖。

我需要: 雖然移動我頂詳細視圖向右,我想用我所採取的主要觀點,因爲它是一個快照之前我導航離開,以示揹着我目前細節視圖(我使用快照創建UIImageView - 讓它稱爲「dummyMasterview」)。我的問題是像addSubView這樣的函數似乎將dummyMasterview作爲背景放置在該視圖上。我希望能夠順利地將頂部視圖向右移動以顯示其下面的dummyMasterview。然後,當我釋放時,我將適當地對視圖進行動畫處理(如果跨越閾值,一直彈出到我的實際根視圖)。到目前爲止,我只能使用addSubview和其他子視圖方法將此圖像作爲當前視圖的背景。不是一個全新的觀點。

+0

最後一點有點難以遵循。你可以添加一個帶註釋的屏幕截圖或圖表來說明情況嗎? –

+0

我只是想出了它 - 我將它作爲一個單獨的答案張貼,並添加圖像(一旦我回家)我的意思是特別是在任何人有這種相同的問題。 –

回答

1

好的,我想到了這一點...我無法添加我的「dummyMasterview」後面的當前可見視圖(我們稱之爲currentView),因爲我將它添加爲currentView的子視圖。這導致dummyMasterview剛好在currentView之上,而不是在它之後。爲了將dummyMasterview 背後 currentView你必須dummyMasterview的主窗口的子視圖:

// Create a dummyMasterView from the image and add it as a subview of the main 
// window so it appears behind the current visible view while panning 
UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow]; 
UIImageView* dummyMasterView = [[UIImageView alloc] initWithImage:dummyMasterImage]; 
UIView* mainWindowSubview = mainWindow.subviews[0]; 

//Add dummyMaster to main window subview. 
[mainWindowSubview addSubview:self.dummyMasterView]; 

//Move it to the back so it doesn't cover up currentView 
[mainWindowSubview sendSubviewToBack:self.dummyMasterView]; 

因此,基本上,我是愚蠢的假設currentView的子視圖將被放在背後currentView。因爲我想要在currentView後面出現一個全新的視圖,所以新視圖需要是currentView的同胞。也就是說,currentView和dummyMasterView現在都是主窗口的子視圖。一旦我有機會,圖片將張貼澄清。

相關問題