navigationItem.titleView

时间:2016-05-22 08:19:07

标签: ios titleview navigationitem

我希望有一个自定义titleView,它可以填充除BarButtonItems之外的有用空间。

@property (strong, nonatomic) IBOutlet UIView *testView;
ViewDidLoad中的

_testView.frame=CGRectMake(0, 0, self.view.frame.size.width-self.navigationItem.leftBarButtonItem.width - self.view.layoutMargins.right - self.view.layoutMargins.left, 44);
self.navigationItem.titleView =_testView;

但事情并没有像我预期的那样发挥作用:

excution result on simulator

几个问题:

  1. 对于iPhone 6S Plus,在将_testView分配给navigationItem.titleView之前,宽度为398,但在viewDidAppear之后,它变为329,为什么会这样?

  2. titleView和右边框之间有差距,有没有办法删除间隙?

  3. 对于只有自动生成后退按钮的页面,我怎样才能获得它的宽度?

  4. 更新: 感谢@ JoBu1324帖子,左边barButton的宽度可以在viewDidAppear而不是viewDidLoad获取:

        UIView *leftBarButtonView = [self.navigationItem.leftBarButtonItem valueForKey:@"view"];
        CGFloat leftBarButtonWidth = leftBarButtonView ? [leftBarButtonView frame].size.width : (CGFloat)0.0;
    

    也可以使用leftBarButtonView.frame.origin.x获取左边距。

    我不清楚的是右边距(在我的情况下为12px)以及leftBarButtonView和titleView之间的差距,在我的情况下为6px。

0 个答案:

没有答案
相关问题