当设备方向改变时,UINavigationBar的标题和右键错误放置

时间:2015-07-03 07:08:20

标签: ios iphone autolayout uinavigationbar uistoryboard

我面临着一个非常棘手的问题,并且不知道是什么导致了这个问题。让我详细解释一下这个问题,

一般细节
我在顶部有一个UINavigationBar,它可以在单一方向上正常工作。但是当我旋转设备时,标题和右键相应地不合适。以下是我的案例,

案例1:
当我在纵向模式下运行应用程序时,NavigationBar显示正常 enter image description here

但是当我将方向更改为横向时,会发生这种情况 enter image description here

案例2:
当我在横向模式下运行时,NavigationBar显示正常 enter image description here

但如果我将方向改为肖像,则会出现这种情况 enter image description here

注意:我正在使用Autolayout,以下是标题和UIBarButtonItems的代码,

self.title = @"Title";

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                         style:UIBarButtonItemStylePlain target:self action:@selector(navigateToPreviouseScreen)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Add"
                                                                         style:UIBarButtonItemStylePlain target:self action:@selector(addButtonTapped)];

2 个答案:

答案 0 :(得分:0)

我只是使用您的代码在 viewDidLoad 中配置导航栏,并且没有添加任何约束。它在我身边完美无缺。你手动添加约束了吗?

答案 1 :(得分:0)

尝试translatesAutoresizingMaskIntoConstraints = NO,它是否解决了您的问题

如果没有 也尝试这个 your_right_bar_button.customview.autoresizingMask = UIViewAutoresizing.FlexibleLeftMargin | UIViewAutoresizing.FlexibleHeight