如何在setStatusBarHidden之后设置顶部位置= 0:是吗?

时间:2009-02-06 09:40:56

标签: iphone xcode

我在设置

后发现了
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]

viewDidLoad,如果我想将图片对齐到顶部,我需要将其位置设置为.y = -20;

无论如何将顶部位置的y坐标设为 0 ?或隐藏状态栏后注定是-20?

感谢阅读。

6 个答案:

答案 0 :(得分:11)

我在某个方面遇到了类似的问题,这段代码为我解决了这个问题:

[viewController.view setFrame: [viewController.view bounds]];

答案 1 :(得分:4)

Justin Gallagher的解决方案几乎是正确的,但有一个主要的副作用。

隐藏状态栏然后将视图的框架设置为自己的边界将在当前方向上工作。 但旋转将是丑陋的。例如,如果你是肖像画,将设备旋转到横向将导致整个视图的帧移动到正确的256点,在屏幕上留下一个大的黑色空间。

上面评论中的bmoeskau解决方案(另一个副作用)避免了这个问题:

[self.view setFrame: [[UIScreen mainScreen] bounds]];

答案 2 :(得分:3)

如果您希望从开始时删除状态栏,我想您应该将一个UIStatusBarHidden项添加到Info.plist中。

Discussion@apple.com

您还可以考虑将自动调整大小设置为调整垂直(和水平)

的大小

添加文本视图 here下查看在InterfaceBuilder中点击的内容

引用:

  

单击内部框中的水平和垂直线,使它们变为纯红色线条。动画预览显示文本视图的内部大小将随窗口一起增大和缩小。

答案 3 :(得分:2)

检查以确保笔尖中根视图的大小正确设置为480x320。某些模板项目会在460x320处创建这些项目以考虑状态栏。如果您加载的视图跨越全屏并且状态栏被隐藏,那么它应该可以正常工作,您根本不需要做任何特殊的事情。

答案 4 :(得分:0)

如果你有一个嵌套在视图中的滚动视图,请确保也改变它。这段代码解决了我的所有问题。

[self.view setFrame: [self.view bounds]];
[self.theScroller setFrame: [self.view bounds]];

" theScroller"是我的滚动视图的名称。

答案 5 :(得分:0)

以下解决方案正常运行

  • 同时适用于iOS 6和iOS 7,
  • 用于隐藏和显示状态栏,
  • 纵向和横向,
  • 即使可以看到通话中状态栏

在视图控制器中,添加以下内容:

- (BOOL)prefersStatusBarHidden  // For iOS 7.0 or above.
{
    return _isStatusBarHidden;
}

// Call this method to show / hide the status bar and resize the view.
- (void)setStatusBarHidden:(BOOL)isStatusBarHidden
{
    _isStatusBarHidden = isStatusBarHidden;

    // For iOS 7.0 or above...
    if([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
    {
        // Update status bar visibility.
        [self setNeedsStatusBarAppearanceUpdate];   // Tell the view controller that the return value of -prefersStatusBarHidden has changed.
    }
    // Otherwise...
    else
    {
        // Show or hide status bar.
        [[UIApplication sharedApplication] setStatusBarHidden:_isStatusBarHidden withAnimation:UIStatusBarAnimationNone];

        // Resize view.
        self.view.frame = [UIScreen mainScreen].applicationFrame;
    }
}

这里,BOOL _isStatusBarHidden;是视图控制器类的成员变量。

注意: