iOS navigationbar的高度可以修改吗

 我来答
huanglenzhi
2015-03-01 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517196
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部

答案是可以修改的。

修改前:

修改后:

你新建一个工程,将UIWindow的rootViewController设置为一个UINavigationController的实列,然后自定义一个控制器CustomVC,在CustomVC中写如下代码:

- (void)viewDidAppear:(BOOL)animated
{
   [super viewDidAppear:animated];

   NSLog(@"修改前");
   [self printViewHierarchy:self.navigationController.navigationBar];

   //修改NavigaionBar的高度
   self.navigationController.navigationBar.frame = CGRectMake(0, 20, 320, 100);

   NSLog(@"\n修改后");
   [self printViewHierarchy:self.navigationController.navigationBar];
}

- (void)printViewHierarchy:(UIView *)superView
{
   static uint level = 0;
   for(uint i = 0; i < level; i++){
       printf("\t");
   }

   const char *className = NSStringFromClass([superView class]).UTF8String;
   const char *frame = NSStringFromCGRect(superView.frame).UTF8String;
   printf("%s:%s\n", className, frame);

   ++level;
   for(UIView *view in superView.subviews){
       [self printViewHierarchy:view];
   }
   --level;
}

输出结果:

UINavigationBar:{{0, 20}, {320, 44}}
   _UINavigationBarBackground:{{0, 0}, {320, 44}}
       UIImageView:{{0, 44}, {320, 3}}
   UINavigationItemView:{{160, 22}, {0, 0}}
2013-10-29 20:24:36.900 Nav[8957:907]

修改后
UINavigationBar:{{0, 20}, {320, 100}}
   _UINavigationBarBackground:{{0, 0}, {320, 100}}
       UIImageView:{{0, 100}, {320, 3}}
   UINavigationItemView:{{160, 22}, {0, 0}}

Des dai
2015-03-01
知道答主
回答量:84
采纳率:0%
帮助的人:22.5万
展开全部
不行!IOS是一个封闭的非开元系统!
追答
无法更改
新年快III乐
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式