如何自定义titleView的宽度

前言

下面的代码,定义了titleView的宽度为屏幕宽度。

UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 44)];
titleView.backgroundColor = [UIColor redColor];
self.navigationItem.titleView = titleView;

实际效果:


如何自定义titleView的宽度_第1张图片
截图1

效果并不理想。

解决方案

一、创建个UIView类:

@interface CustomTitleView : UIView
@end

@implementation CustomTitleView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {    
    }
    return self;
}

- (void)setFrame:(CGRect)frame {
    [super setFrame:CGRectMake(0, 0, self.superview.bounds.size.width, self.superview.bounds.size.height)];
}

@end

二、调用

UIView *titleView = [[CustomTitleView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, 44)];
titleView.backgroundColor = [UIColor greenColor];
self.navigationItem.titleView = titleView;

最终效果

如何自定义titleView的宽度_第2张图片
截图2

你可能感兴趣的:(如何自定义titleView的宽度)