关于UINavigationController — navigationBar

navigationBar的navigationItem的左右侧按钮距两边的距离为16,有时我们需要对按钮的位置做一些修改。


1.navigationItemUIBarButtonItem的偏移

UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeSystem];
leftBtn.frame = CGRectMake(0, 0, 65, 26);
[leftBtn setImage:[UIImage imageNamed:@"fanhui_btn_normal.png"] forState:UIControlStateNormal];
[leftBtn setTitle:@"返回" forState:UIControlStateNormal];
leftBtn.titleLabel.font = [UIFont systemFontOfSize:17];
[leftBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[leftBtn addTarget:self action:@selector(checkAction) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSpacer.width = -18;
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]initWithCustomView:leftBtn];

self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:negativeSpacer,leftButton, nil];

还有一种方法,设置navigationItem的contentEdgeInsets属性

leftBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -16, 0, 0); // 分别为上左下右
self.navigationItem.leftBarButtonItem = leftButton;

2、navigationBar的滑动动画

一般的写法,只能做到隐藏navigationBar
[self.navigationController setNavigationBarHidden:YES];

要想隐藏navigationBar的同时带动画效果,就需要下面这种
[self.navigationController setNavigationBarHidden:NO animated:NO];
self.navigationController.navigationBar.hidden = YES;
[self.navigationController setNavigationBarHidden:YES animated:YES];




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值