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还是居中状态。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容