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现在都是主窗口的子视图。一旦我有机会,图片将张贴澄清。

相关问题