【问题标题】:How to show a view with semi transparency from IOS application controller如何从 IOS 应用程序控制器显示半透明的视图
【发布时间】:2015-03-31 12:25:45
【问题描述】:



假设我的 IOS 应用程序中有十个视图控制器。假设特定事件(例如:BLE 连接成功/失败)将在应用程序控制器中得到提示。
我想阻止当前视图控制器(无论它可能是哪个视图控制器)并根据来自应用程序控制器的事件显示一个半透明的视图 2 秒。

如何在 IOS 中实现这一点。任何帮助都将受到高度赞赏。

【问题讨论】:

    标签: ios uiviewcontroller ios-bluetooth


    【解决方案1】:

    我对上述问题的解决方案是这样的:

    创建一个自定义的透明覆盖 UIView,它可以覆盖任何视图、导航栏和 tabbbar。

    -在您的视图控制器嵌入的导航控制器(或标签栏控制器)中,我创建了一个自定义视图,其框架等于导航控制器视图的框架。

    -然后我通过将它的 origin.y 设置为 navigationController.view.height 来设置它在屏幕外

    -然后我创建 2 个函数 -(void)showOverlay-(void)hideOverlay 在屏幕上和屏幕外为覆盖视图设置动画:

    - (void)hideOverlay{
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.3];
    
        CGRect frm = self.helpView.frame;//helpView is my overlay
        frm.origin.y = self.offscreenOffset; //this is an Y offscreen usually self.view.height
        self.helpView.frame = frm;
    
        [UIView commitAnimations];
    }
    
    - (void)showOverlay{
    
        [self.view bringSubviewToFront:self.helpView];
    
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.3];
    
        CGRect frm = self.helpView.frame;
        frm.origin.y = self.onscreenOffset;
        self.helpView.frame = frm;
    
        [UIView commitAnimations];
    }
    

    -在我的视图控制器中我可以调用

    [(MyCustomNavCtrl *)self.navigationController showOverlay];
    [(MyCustomNavCtrl *)self.navigationController hideOverlay];
    And that's about it.
    

    【讨论】:

      【解决方案2】:

      只需将您的视图 alpha 属性设置为

      viewController.view.alpha = 0.5;
      

      【讨论】:

      • 我应该从应用程序控制器推送视图控制器吗?或者我应该检查哪个视图控制器存在,我应该在上面添加这个视图?
      • 只是将视图呈现为模型视图!
      【解决方案3】:

      设置视图的 alpha 级别也会使所有子视图透明。如果您只想让背景半透明,请执行以下操作。

      myView.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.5)
      

      (Swift 语法)

      【讨论】:

        猜你喜欢
        • 2013-09-24
        • 2013-10-11
        • 1970-01-01
        • 2014-08-01
        • 1970-01-01
        • 2014-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多