亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

iOS navigationbar的高度可以修改嗎?

iOS navigationbar的高度可以修改嗎?

iOS
不負相思意 2018-07-27 21:35:24
如題iOS 中navigationbar的高度可以修改嗎?
查看完整描述

3 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

為什么我的不改變,我使用的是 ios9 xcode7

查看完整回答
反對 回復 2018-07-31
?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

這樣寫確實可以修改 UINaigationBar 的高度,但存在一個問題,高度多出的部分會覆蓋 ViewController 的視圖(ViewController 在有導航欄的情況下視圖默認會向下便宜 44)。解決辦法是通過創建 UINaigationBar 的子類或 Category 重寫 - (CGSize)sizeThatFits:(CGSize)size ,這樣視圖會自動向下偏移合適的距離。

查看完整回答
反對 回復 2018-07-31
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

答案是可以修改的。

修改前:
https://img1.sycdn.imooc.com//5b6025510001c20103200502.jpg

修改后:
https://img1.sycdn.imooc.com//5b6025600001554f03200502.jpg

你新建一個工程,將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. 如果還有疑問,請追問。沒有的話,請采納,謝謝!

查看完整回答
反對 回復 2018-07-31
  • 3 回答
  • 0 關注
  • 1914 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號