【问题标题】:iOS7 Fullscreen uiview.. why disappear status bar?iOS7全屏uiview ..为什么会消失状态栏?
【发布时间】:2013-09-27 05:50:26
【问题描述】:

(我英语说得不好T.T)

我想要 uiviewcontroller 中的全屏 uiview。

我使用这个代码。

  - (IBAction)addBtn:(id)sender {

    addView = [[AddView alloc] initWithFrame:CGRectZero];

    [[[UIApplication sharedApplication]delegate].window addSubview:addView];
    addView.window.windowLevel = UIWindowLevelStatusBar;

    [addView setAlpha:0.0f];

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.35f];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

    [addView setAlpha:1.0f];
    [UIView commitAnimations];
}

当点击按钮(+)时

状态栏消失!!!!!!!

当我在 ios6 中使用相同的代码时,它可以工作。 但在 ios7 中不起作用。

为什么会消失状态栏?

check my sorce code here.

【问题讨论】:

  • 没有看到你的视图:也许状态栏是不可见的,因为它的文本颜色与底层视图的背景颜色相同。在这种情况下,您可以检查 doubleencore.com/2013/09/… 以更改状态栏的文本颜色。
  • 克里斯感谢您的评论。但我使用 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];和“查看基于控制器的状态栏外观 - 否”。我不认为这是一个问题。

标签: iphone ios objective-c uiview ios7


【解决方案1】:

在 viewdidLoad 函数中编写以下代码...

你的代码......///

[addView setAlpha:0.5];// make addsubview alpha 0.5

希望它会起作用......我的朋友!!!!

编码愉快!!!!!!

【讨论】:

  • 感谢您的回答。但我想要覆盖状态栏。像警报视图。
  • 感谢 NiravPatel。我的英语很差......我想要像alerview黑色背景一样的uiview重叠状态栏。
  • 非常非常感谢您的评论!!尼拉夫帕特尔。请检查此图像。 dropbox.com/s/ycarzi11lrdgmm2/Untitled-1.png
  • 好的,所以你想要第二张图片...?你想用 addView 覆盖你的状态栏吗?
  • 你可以做的是让你的addview框架hegiht到全尺寸(iphone5为568,iphone4为480),然后尝试将它添加到窗口中)像这样.. addView = [[AddView alloc] initWithFrame:CGRectMake(0,0,320,568)];
【解决方案2】:

您好,这里是您的 addBtn 方法的代码。

-(IBAction)addBtn:(id)sender {

    addView = [[AddView alloc] initWithFrame:CGRectZero];

    [[[UIApplication sharedApplication]delegate].window addSubview:addView];
    addView.window.windowLevel = UIWindowLevelNormal;

    [addView setAlpha:0.0f];

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.35f];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

    [addView setAlpha:1.0f];
    [UIView commitAnimations];

}

现在工作正常。

【讨论】:

  • 感谢您的回答。但我想要覆盖状态栏。像警报视图。
【解决方案3】:

你需要删除这一行,addView.window.windowLevel = UIWindowLevelStatusBar;

- (IBAction)addBtn:(id)sender {

        addView = [[AddView alloc] initWithFrame:CGRectZero];

        [[[UIApplication sharedApplication]delegate].window addSubview:addView];
            // addView.window.windowLevel = UIWindowLevelStatusBar;

        [addView setAlpha:0.0f];

        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.35f];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

        [addView setAlpha:1.0f];
        [UIView commitAnimations];
    }

【讨论】:

  • 感谢您的回答。但我想要覆盖状态栏。像警报视图。
  • 为什么使用 addView.window.windowLevel = UIWindowLevelStatusBar;?此行只会消失状态栏。
  • 感谢您的评论。我想要像 alertview 一样的 addView。 UIWindowLevelStatusBar 在 ios6 中工作。检查此图像。 dropbox.com/s/ycarzi11lrdgmm2/Untitled-1.png
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多