ios 自定义系统导航栏TitleView

新建一个类TYView继承于UIView,布局要添加的控件。初始化TYView,创建对象view,然后[self.navigationItem setTitleView:view]; 。view的大小会根据导航栏左右两端的按钮数量变化,始终是自动居中布局,距离左右两边的距离相等。用的是initWithFrame方法初始化View。
1、改变view距离左边按钮的位置(居左展示)。
初始化时设置view的translatesAutoresizingMaskIntoConstraints为NO,此属性默认是YES,然后在TYView.m里面添加下面方法就可以居左显示:
- (CGSize)intrinsicContentSize{
return CGSizeMake(240, 44);//自行更改,240可以根据左右两边的按钮数量计算得到,随意修改。
}
2、自定的View会在多处使用时,有的页面不想居左显示,就不用在初始化时设置translatesAutoresizingMaskIntoConstraints为NO,当translatesAutoresizingMaskIntoConstraints为YES时不会调用- (CGSize)intrinsicContentSize 方法。titleView还是居中状态。

你可能感兴趣的:(ios 自定义系统导航栏TitleView)