iOS开发问题----自定义导航栏点击范围扩展

    在iOS开发中往往需要自定义导航栏的返回按钮,而一般采取的策略一般都是,先创建一个按钮,附上想要贴上的图片,然后设置大小,在添加点击事件,然后在创建一个UIBarButtonItem 将item设置成自定义位图模式,将先前创建的按钮赋值进去,这样一个自定义的按钮就贴上去了,有的时候还会根据图片的样式适度的调整图片在按钮里面的布局。但是有的时候需求需要我们将这个按钮的可点击范围放大,如果说向右侧扩大,这个问题不大,但是向左侧,就有问题,因为替换原先系统的返回按钮之后,他的位置就已经定了。无论做出怎样的调整,是变化frame大小也好,改变布局方式也罢,返回按钮的左侧都已经定死,难动分毫。那么可以采取如下策略,将左侧位置用UIBarButtonItem以适应填充的方式填充。


 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 80, 44)];

    [button setImage:[UIImage imageNamed:@"arrow_left"forState:UIControlStateNormal]; //设置自定义返回图片

    [button setTitle:@"" forState:UIControlStateNormal];

    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    button.titleLabel.font = [UIFont systemFontOfSize:17];

    [button setImageEdgeInsets:UIEdgeInsetsMake(0, -32, 0, 0)];  //调整按钮内图片的布局 

    [button setTitleEdgeInsets:UIEdgeInsetsMake(0, -10, 0, 0)];

    [button addTarget:self action:@selector(backView) forControlEvents:UIControlEventTouchUpInside];

    self.navigationController.navigationBar.translucent = NO;


    UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];

    space.width = -20;

    

    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

    self.navigationItem.leftBarButtonItems = @[space, backButtonItem];


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值