使用autolayout在NavigationBar中自动调整titleView

Lin*_*int 5 cocoa-touch constraints uinavigationbar titleview autolayout

我想在我的UINavigationBar中在左右BarButtonItem之间使用自定义UIView,但要尽可能宽.出于这个原因,我在IB中添加了一个UIView到NavigationBar.禁用自动布局后,一切都按预期使用自动调整遮罩.但是在启用了autolayout的故事板中,我无法让它工作.看起来我不能在标题视图中为IB设置任何约束.如果我将设备旋转到横向模式,则UIView的宽度仍然相同.我该怎么做才能使titleView填充我的UIBarButtonItems之间的空间并启用autolayout?

感谢您的任何帮助

Linard

Lin*_*int 5

我在我的代码中解决了以下问题:

 - (void)willAnimateRotationToInterfaceOrientation:(__unused UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
 {
 [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];

    CGSize navigationBarSize = self.navigationController.navigationBar.frame.size;
    UIView *titleView = self.navigationItem.titleView;
    CGRect titleViewFrame = titleView.frame;
    titleViewFrame.size = navigationBarSize;
    self.navigationItem.titleView.frame = titleViewFrame;
 }
Run Code Online (Sandbox Code Playgroud)

我还没有找到另一个解决方案(自动调整大小),但我愿意接受新的和/或更好的解决方案

利纳德