【问题标题】:Adding an entirely different view behind the current view在当前视图后面添加一个完全不同的视图
【发布时间】:2015-10-05 17:36:41
【问题描述】:

总结: 我正在尝试实现一个平移手势,它就像 Apple 的默认平移手势 (interactivePopGestureRecognizer) 一样工作。唯一的区别是它会一直捕捉到 splitview 控制器的主视图,而不是只返回堆栈上的一个视图。这是通过 popToRootViewController 完成的。

我目前能做什么: 我的 UIScreenEdgePanGestureRecognizer 子类能够跟随用户的触摸并根据他们抬起手指的位置动画到适当的位置。也就是说,如果他们只将视图移动了一点,它就会回到原来的位置,并且手势识别器会被重置。如果用户将其向右移动足够远并松开(超过略小于屏幕一半的阈值),则视图将滑离屏幕右侧,主视图滑入视图。

我需要什么: 在将我的顶部细节视图向右移动时,我想使用我在导航离开之前拍摄的主视图的快照,以显示我当前的细节视图的后面(我使用快照创建一个 UIImageView - 让称之为“dummyMasterview”)。我的问题是 addSubView 之类的函数似乎将 dummyMasterview 作为该视图的背景。我希望能够顺利地将顶视图拉到右侧以显示其下方的 dummyMasterview。然后,当我释放时,我将适当地为视图设置动画(如果超过阈值,则一直弹出到我的实际根视图)。到目前为止,我只能使用 addSubview 和其他子视图方法将此图像作为背景放置在当前视图上。不是作为它背后的全新观点。

【问题讨论】:

  • 最后一点有点难以理解。你能添加一个带注释的屏幕截图或图表来演示这种情况吗?
  • 我刚刚想通了 - 我将把它作为一个单独的答案发布并添加我的意思的图像(一旦我回家),以防其他人遇到同样的问题。

标签: ios cocoa-touch uiviewcontroller uisplitviewcontroller subview


【解决方案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 现在都是主窗口的子视图。一旦有机会,我会发布图片以供澄清。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    相关资源
    最近更新 更多