Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何实现此segue/view外观?_Ios_Swift - Fatal编程技术网

Ios 如何实现此segue/view外观?

Ios 如何实现此segue/view外观?,ios,swift,Ios,Swift,在应用商店中,将显示多个应用图标,如此屏幕截图所示 点击其中一个应用程序图标,我们会看到一个显示应用程序详细信息的视图,而视图的其余部分会变暗。点击视图外的任何位置,将其取消 我如何达到这个效果 据我所知,它不是一个带有模态或popover segue的视图控制器。这也不是一个展示或展示细节的环节 我的猜测是他们是靠自己做的 创建someView 在屏幕1上覆盖黑色全屏视图,不透明度为50% 设置someView.hidden=false并将其定位在半透明层上方 添加点击手势识别器“dismi

在应用商店中,将显示多个应用图标,如此屏幕截图所示

点击其中一个应用程序图标,我们会看到一个显示应用程序详细信息的视图,而视图的其余部分会变暗。点击视图外的任何位置,将其取消

我如何达到这个效果

据我所知,它不是一个带有模态或popover segue的视图控制器。这也不是一个展示或展示细节的环节

我的猜测是他们是靠自己做的

创建someView 在屏幕1上覆盖黑色全屏视图,不透明度为50% 设置someView.hidden=false并将其定位在半透明层上方 添加点击手势识别器“dismissSomeView”,它将再次隐藏视图并移除半透明层 如果我错了,请纠正我,如果有更好的/苹果批准的方法来完成它


我正试图在支持iOS 8和iOS 9的iPhone上实现这一效果。

构建一个中间有白色背景色的白色自定义视图

构建一个黑色背景的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中的一个图标时,它会触发类似的操作。并传递一些参数,如名称、描述


这只是我的想法,你可以接受你的想法。希望这能对您有所帮助。

使用以下参数在故事板中创建一个片段:

塞格:以现代方式呈现

演示文稿:表格

转换:默认值

动画检查


注意:这种效果在Ipad上是可以实现的。要在iphone中产生类似效果,您需要覆盖trait集合

我把问题贴出来后,很快就找到了最好的答案

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

App Store主视图被视为显示视图控制器

各个应用程序的详细信息将显示在具有自己的视图控制器的视图中。这是显示的视图控制器。赛格被选择以模态出现。在其自己的prepareforsgue:方法中,呈现视图控制器设置此视图控制器的下面解释的转换委托,并将modalPresentationStyle设置为.Custom

显示的视图控制器具有一个转换委托对象,该对象符合UIViewControllerTransitioningDelegate协议

此代理具有指向表示控制器和动画对象的方法。下面提供了此步骤的详细信息

自定义animator对象是符合UIViewControllerAnimatedTransitioning协议的类。它确定显示的视图控制器在视图内和视图外的动画方式

UIPresentationController类的自定义表示控制器用于确定显示视图控制器的大小和位置。它还负责呈现暗淡的chrome/view。可以选择设置变暗视图的动画以及显示的视图控制器的过渡动画

步骤4详细信息: 比较冗长的方法名称是presentationControllerForPresentedViewController\uPresented:UIViewController,presentingViewController presentationControllerForPresentedViewController:UIViewController!,sourceViewController源:UIViewController->UIPresentationController?和animationControllerForPresentedController\uuPresentedController:UIViewController,presentingController演示:UIViewController,sourceController源:UIViewController->UIViewControllerAnimatedTransitioning?分别

这个链接比我能做的更好地解释它:


有关使用演示控制器实现类似效果的视频教程,请观看去年WWDC的视频“演示控制器内部外观”的后半部分:

什么使您认为它不是自定义模式viewcontroller演示?谢谢@MikePalard。你的建议让我找到了答案,我已经发布给其他人了。