iOS 怎么自定义系统导航titleView的宽度

搜了好多网上资料,有一个方法用了一段时间,但是在部分机型上 会出错,

    [self.navigationItem.titleView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.width.mas_equalTo(SCREEN_WIDTH-32);
    }];

最后一阵摸索,如下方法可使用,暂时没发现问题
1.自定义一个NavTitleView,增加一个 属性,并设置返回值

@property(nonatomic, assign) CGSize intrinsicContentSize;

- (CGSize)intrinsicContentSize {
    return UILayoutFittingExpandedSize; // 表示在可用范围内尽可能给予最大可用尺寸
}

2.使用

self.titleView = [[NavTitleView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 44)];

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithImage:UIIMAGE_FROM_NAME(@"") style:(UIBarButtonItemStylePlain) target:nil action:nil];
self.navigationItem.leftBarButtonItem = item;
self.titleView.backgroundColor = UIColor.whiteColor;
self.navigationItem.titleView = self.titleView;
self.navigationItem.titleView.width = SCREEN_WIDTH;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容