2015-07-20 22 views
2

App Store screenshot 在App Store中,多个应用程序图标显示在此屏幕截图中。如何实现此segue/view外观?

App Store screenshot with app icon tapped 轻敲的应用程序图标之一,我们得到了一个观点,我们展示了应用程序的细节,而调光视图的其余部分。在视图外的任何地方点击,将其解散。

我该如何达到这个效果?

从我所了解的情况来看,它不是一个带有模式或弹出式扩展的视图控制器。它也不是一个Show或Show Detail segue。


我的猜测是,它们是由

  1. 创建
  2. 覆盖在屏幕1黑色全屏视图,用50%的不透明度
  3. 设置someView.hidden = false和定位它上面的半透明做图层
  4. 添加一个水龙头手势识别器'dismissSomeView',它将再次隐藏视图并移除半透明图层作为w ell

如果我错了,并且如果有更好的/苹果认可的方法来实现它,请纠正我。


我想实现在iPhone这样的效果,与支持的iOS 8和9

+0

是什么让你觉得它不是一个自定义的模态视图控制器演示文稿? –

+0

谢谢@MikePollard。你的建议让我回到了我发布给其他人遵循的答案。 – Roboris

回答

2

当我发布这个问题后,我很快就找到了最好的答案。

上述效果通过以下方式来实现的:

  1. 应用程序商店主视图被认为是呈现视图控制器

  2. 单个应用程序的详细信息以其视图控制器显示在视图中。这是呈现的视图控制器。赛格选择为Present Modally。在其自己的prepareForSegue:方法中,呈现视图控制器设置该视图控制器的转换委托(下面解释),并将modalPresentationStyle设置为.Custom

  3. 提出的视图控制器有一个转换委托对象,它符合UIViewControllerTransitioningDelegate协议。

  4. 该代表具有指向表示控制器和动画器对象的方法。 (这一步的细节可以在下面找到)。

  5. 定制动画师对象是一个符合UIViewControllerAnimatedTransitioning协议的类。它决定了所呈现的视图控制器在进出视图中的动画效果。

  6. 定制显示控制器(的UIPresentationController类)是确定所呈现的视图控制器的大小和位置的类。它也负责呈现调光铬/视图。可以选择使调光视图与所呈现的视图控制器的过渡动画一起动画。


步骤4的详细信息: 的而罗嗦方法名称分别presentationControllerForPresentedViewController(_ presented: UIViewController, presentingViewController presenting: UIViewController!, sourceViewController source: UIViewController) -> UIPresentationController?animationControllerForPresentedController(_ presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning?


此链接解释它比我可能做到这一点: https://www.shinobicontrols.com/blog/ios8-day-by-day-day-24-presentation-controllers


而对于使用演示控制器实现类似的效果的视频教程,请观看视频的后半部分“从去年的WWDC看看Inside Presentation Controllers':https://developer.apple.com/videos/wwdc/2014/

1

建立一个白色CustomedView在中央白色的背景色。

建立一个UIView黑色背景,约透明70%。

将customedView添加到maskView,将maskView添加到self.view。

MyCustomedView *topView = [[MyCustomedView alloc] initWithFrame:CGRectMake(50, 150, self.view.frame.size.width - 100, self.view.frame.size.height - 300)]; 
[maskView addSubview:topView]; 

UIView *maskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
maskView.backgroundColor = [UIColor blackColor]; 
maskView.alpha = 0.75; 
[self.view addSubview:maskView]; 

当你点击UICollectionViewController中的一个图标时,它会像这样做。并传递一些参数,如名称,说明。

这只是我的想法,你可以用你的想法做。希望这可以帮到你。

1

创建故事板与下面的参数赛格瑞:

SEGUE:当前模态

介绍:板材进行

转折:默认

动画检查

注意:这种效果在Ipad中是可以实现的。要在iPhone中有类似的效果,你需要重写特征集合。