【问题标题】:Show custom view over tab bar in iOS在 iOS 的标签栏上显示自定义视图
【发布时间】:2015-11-20 07:29:55
【问题描述】:

我想在标签栏上显示自定义视图。我看到UIAlertView 显示UITabBar 上的视图,当alertView 打开时,用户无法与标签栏交互。我通过使用下面的代码在keyWindow 上显示它来尝试它:

[[[UIApplication sharedApplication] keyWindow] addSubview:myViewObject];

但用户仍然可以更改选项卡。

【问题讨论】:

    标签: ios objective-c xcode uitabbarcontroller uialertview


    【解决方案1】:

    当我创建需要阻止整个窗口并显示的自定义控件时,我曾经使用overlayView来做到这一点

    //self refers to active UIViewController
    UIView *overlay =[[UIView alloc]initWithFrame:self.view.window.rootViewController.view.bounds];
    overlay.backgroundColor =  [UIColor colorWithRed:0 green:0 blue:0 alpha:.4];
    overlay.tag = 1001;
    [overlay setUserInteractionEnabled:YES];
    [self.view.window.rootViewController.view addSubview:overlay];
    

    你可以添加一个点击手势来从 superview 中移除 overlayView。

    【讨论】:

      【解决方案2】:

      试试这个:

      UIView *coverView = [[UIView alloc] initWithFrame:self.view.frame];
      coverView.backgroundColor = [UIColor greenColor];
      coverView.alpha = .3f;
      
      UIWindow *window = [[UIApplication sharedApplication] windows].lastObject;
      [window addSubview:coverView];
      

      【讨论】:

      • Window 对象不支持方向,因为它是应用在 rootviewcontroller 上的。
      【解决方案3】:

      您可以在显示自定义视图时在标签栏上设置tabBarController.tabBar.userInteractionEnabled = false

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-17
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 2015-10-29
        • 1970-01-01
        • 2021-12-16
        • 1970-01-01
        相关资源
        最近更新 更多