图像选择器状态栏问题

时间:2014-12-30 13:58:08

标签: ios objective-c iphone xcode5 uiimagepickercontroller

my status bar appearance before picking an image

我在我的应用程序中使用状态栏,并按以下方式使用代码

my status bar position after picking image

我的项目包括标签栏控制器。因此,从库中选择图像后,我的状态栏正在改变其位置。它怎么解决了?

请有人帮忙,我浪费了很多时间。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
    self.window.clipsToBounds = YES;
    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];

    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
    if(orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight)
    {
        self.window.frame =  CGRectMake(0, 0,self.window.frame.size.width-20,self.window.frame.size.height);
        self.window.bounds = CGRectMake(0, 0, self.window.frame.size.width, self.window.frame.size.height);
    } else
    {
        self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height);
        self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
    }
}

先谢谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

info.plist文件中的密钥:

'View controller-based status bar appearance' and set to NO.

同样在appDelegate。

[application setStatusBarHidden:NO]; 
[application setStatusBarStyle:UIStatusBarStyleDefault];  // change style as per your requirement

答案 1 :(得分:0)

在iOS7及更高版本中,状态栏是透明的,因此实现此目的的最佳方法是创建一个基本控制器并从中扩展每个控制器,并在viewDidLoad基本控制器中创建该视图的单个对象(即黑色视图),框架CGRectMake(0, 0, view.frame.size.width, view.frame.size.height),带有自动调整大小的宽度,并将其添加为子视图。

答案 2 :(得分:-1)

(void)layoutSubviews {
    self.frame = CGRectMake(0, 0, 320, 64);
}