状态栏下移视图
Posted
技术标签:
【中文标题】状态栏下移视图【英文标题】:Status bar shifts views down 【发布时间】:2015-03-12 08:00:18 【问题描述】:我有一个视图控制器,其中导航栏设置为隐藏并且 将我自己的 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];
当我加载这个视图控制器时,上面的代码可以工作,但是如果我推送到任何其他视图控制器并返回到这个视图控制器,那么状态栏会占用空间并将视图向下推。
如何解决它。我已经尝试了所有我知道的解决方案。
【问题讨论】:
状态还是导航?你能在图片之前和之后添加并显示核心运行的位置(哪种方法)? @Wain:我已经更新了,希望现在清楚 为什么状态栏颜色变了? @PrafulKadam 你是怎么解决这个问题的,我也面临同样的问题,你能帮忙 @Geet : self.automaticallyAdjustsScrollViewInsets = NO;在视图中加载 【参考方案1】:我猜布局约束可能有问题。请尝试以下代码:
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];
【讨论】:
我注意到,如果我使用 xib 子视图,那么只会发生这种情况。 您能否用您用于创建视图而不是导航栏的实际代码更新您的问题,并将其添加到超级视图和您的 xib 屏幕截图中?【参考方案2】:您可以尝试将您的代码添加到 viewWillAppear 并检查它是否有效吗?
【讨论】:
以上是关于状态栏下移视图的主要内容,如果未能解决你的问题,请参考以下文章