Ios 状态栏向下移动视图

Ios 状态栏向下移动视图,ios,uinavigationbar,statusbar,Ios,Uinavigationbar,Statusbar,我有一个视图控制器,其中导航栏设置为“隐藏”和“隐藏” 将我自己的UIView显示为导航栏并使其透明。 我还将我的视图帧Y位置设置为0。因此,它从顶部开始,没有显示任何空间 [self.navigationController.navigationBar setHidden:YES]; navBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)]; navBarView

我有一个视图控制器,其中导航栏设置为“隐藏”和“隐藏” 将我自己的UIView显示为导航栏并使其透明。 我还将我的视图帧Y位置设置为0。因此,它从顶部开始,没有显示任何空间

[self.navigationController.navigationBar setHidden:YES];

navBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];

navBarView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top-bg.png"]];

[self.view addSubview:navBarView];
当我加载此视图控制器时,上面的代码起作用,但如果我推到任何其他视图控制器并返回到此视图控制器,则状态栏会占用空间并向下推视图

如何修复它。我已经尝试了我所知道的每一种解决办法


我想布局约束可能有问题。请尝试以下代码:

UIView* navBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];

navBarView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"top-bg.png"]];

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(navBarView);
NSArray* horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-[navBarView]-|"
                                        options:0 metrics:nil views:viewsDictionary];
NSArray* verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[navBarView(64)]-|"
                                                                         options:0 metrics:nil views:viewsDictionary];
NSArray* constraints = [horizontalConstraints arrayByAddingObjectsFromArray:verticalConstraints];
[navBarView addConstraints:constraints];

[self.view addSubview:navBarView];

能否尝试将代码添加到ViewWillDisplay并检查其是否有效?

状态或导航?你能在图片前后添加图片并显示核心运行的位置(哪种方法)?@Wain:我已经更新了,希望现在能弄清楚为什么状态栏的颜色会改变?@PrafulKadam你是如何解决这个问题的,我也面临同样的问题,你能吗help@Geet:self.automaticallyadjustsscrollviewsinsets=否;在ViewDidLoad中,我注意到如果我使用xib子视图,那么只会发生这种情况。请使用创建视图而不是导航栏的实际代码更新您的问题,并将其添加到superview中,以及xib的屏幕截图?