自定义带navigationBar的自定义视图

参考官方文档,浅显提取和理解

参考链接

创建navigationBar

- (void)loadView{
    // view= nil会调用loadView方法
    // view为nil,在loadView内调用self.view会造成死循环,导致内存泄漏
    self.view = [[UIView alloc] init];
    
    _navigationBar = [[UINavigationBar alloc]init];
    _navigationBar.delegate = self;
    [self.view addSubview:_navigationBar];
}

计算statuBar到navigationBar的高度

CGFloat topLayoutGuide = 0.0f;
if ([self respondsToSelector:@selector(topLayoutGuide)])
   topLayoutGuide = (self.topLayoutGuide).length;

根据此设置navigationBar的frame

[_navigationBar sizeToFit]; // return 'best' size to fit current view bounds
_navigationBar.frame = CGRectMake(_navigationBar.frame.origin.x, topLayoutGuide,_navigationBar.frame.size.width,_navigationBar.frame.size.height);

计算剩余展示子视图或子控制器的frame

return CGRectMake(0,
_navigationBar.frame.size.height + _navigationBar.frame.origin.y,
self.view.bounds.size.width,
self.view.bounds.size.height - _navigationBar.frame.size.height - _navigationBar.frame.origin.y);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这阵子迷上了李健和小岳岳的《唐僧在女儿国抒怀并看着女儿国王的眼睛》,然后就开始单曲循环迟重瑞1987年唱的那首《唐...
    二十四大爷阅读 3,938评论 0 0
  • 一直觉得自己是个很冷酷的人,想要对任何人任何事都做到不闻不问,不关心以减少麻烦。可即便再怎么伪装,内心的空虚却无法...
    蘅烟旭阳阅读 2,880评论 0 0
  • 01 你喜欢雨天 所以我把雨伞随身携带 并祈祷着在你心情落寞时下一场酣畅的雨 02 在那一刻 我最想做的事是 把肩...
    喵的氟西汀阅读 3,328评论 3 8

友情链接更多精彩内容