RISEBY
答案是可以修改的。修改前:修改后:你新建一个工程,将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}}可以看到UINaigationBar的高度已经从44变到了100. 如果还有疑问,请追问。没有的话,请采纳,谢谢!