【问题标题】:Present new semi-transparent VC on top of view在视图顶部展示新的半透明 VC
【发布时间】:2014-11-05 09:54:00
【问题描述】:

我环顾四周,似乎无法弄清楚这一点。

我只是想在另一个视图之上显示一个视图,但是来自另一个 VC,并且在 storyboard 中。

这个视图背后的“想法”是一种弹出/警报,它最终需要一个集合视图和多个按钮。所以我想我会用另一个 VC 来做,因为我在应用程序的很多地方都需要那个“弹出窗口”。

现在,我可以做到,但我的视图不透明(即使我的 alpha 设置正确),所以我猜测“下”视图实际上已经消失了,我只是做了一个常规的“ segue”使用不同的方法。所以我被卡住了。

而且我不能只是将整个 VC 类复制粘贴到我需要的任何地方,所以我可以“添加子视图”它......

有什么想法吗?

这就是我正在做的:

AddFeelingViewController *adf = (AddFeelingViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"AddFeelingViewController"];

adf.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:adf animated:YES completion:nil];

视图出现并且我可以进行交互,但由于它非常小,我只需要一个我没有的“透明背景”。另外,我打算有一个全屏按钮来删除视图。经典的“点击某处取消”类型的按钮。

非常感谢任何帮助!

【问题讨论】:

    标签: ios view controller storyboard transparency


    【解决方案1】:

    你应该在 Github 上查看这个项目,它正是你在“自定义过渡”中所需要的。

    https://github.com/schneiderandre/popping

    它是使用 Facebook 流行动画引擎创建的。

    【讨论】:

    • 这看起来正是我所需要的。如何在不使用 pod 的情况下将其添加到我的项目中?我不确定要导入什么...
    • 我在我的项目中只使用了自定义过渡,我导入了:ManuallyViewController.h/m、DismissingAnimator.h/m、PrestingAnimator.h/m 和 UIColor+CustomColors.h/m.. 那里不需要豆荚。 :)
    • 忘记 ManuallyViewController.h/m,它是 ModalViewController。我改了名字忘记修改了。
    • 你好 RJ,我已经导入了这些文件,但我遇到了#import 问题,我在请求 时遇到错误,所以我也很重视所有 pop 类,但现在它们也会产生导入错误。我做错了吗?
    • 我最终使用了非常相似的 KLCPopup,所以你肯定会引导我走向正确的方向,也让我发现了 facebook POP。 :) 这是给你的答案标签!谢谢男人
    【解决方案2】:

    这是一种获取 alpha 值的方法,但您可以不显示 viewController,而只需将其作为子视图与 alpha 值一起添加到当前视图,如下所示:-

    -(IBAction)newView:(id)sender {
      demoVc = (YOUR_VIEW_CONTROLLER *)[self.storyboard instantiateViewControllerWithIdentifier:@"identifier"];
    
      demoVc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
      [demoVc.view setAlpha:0.3];   //Set alpha value
    
       //    [self presentViewController:demoVc animated:YES completion:nil];
    
      [self.view addSubview:demoVc.view];
    }
    

    您也可以简单地创建一个 IBAction 方法将其从超级视图中删除。

    【讨论】:

    • 嗯,我试试看:)
    • 这也会产生一些问题:我不需要我的整个视图是透明的,只需要用户可以点击以删除FromSuperview 的外边框。在这里一切都是透明的,那不可能。我尝试将 VC 的大小(以及视图的大小)减小到仅不透明的部分,但它只是用空白填充其余部分,我的主视图仍然隐藏在它后面
    • 为了透明度,您可以将 alpha 值从 0.3 更改为 0.5。您还可以分享一个屏幕截图,说明您需要它是什么样的,因为我无法弄清楚。
    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 2021-06-10
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多