关于布局TabBar方法总结

IOS开发过程中,布局tabbar是经常用到的功能,如果才能满足我们的需求,显示符合需求的按钮,就将是我们接下来要讨论的重点:

1. 在tabbar中间添加一个按钮,该按钮的功能是为了弹出另外有一个界面,有三种方法可以解决下面的问题,



第一: 通过KVC的赋值,自定义tabbar,重写layoutSubViews 方法,取代系统原有的tabor.

第二: 自定义一个view,添加到tabbar上,通过控件间的传值,实现功能

第三:添加5个控制器,将中间的控制器的titile和 image 分别设置为nil,然后自定义一个button,将button添加到tabbar的第三个barbuttonitem的位置上

前两个比较简单,重点说下第三个, 这种方法操作时会有很多注意点:

1)如何才能正确的添加到第三个位置,参考下列代码

2)如何才能保证添加的按钮显示的顶层,而不被第三个barbuttonitem覆盖,因为在添加子控制器的过程中,系统会自动的将控制器产生的barButtonItem显示在最顶层

两种方式: 第一:在viewDidload中分别添加自控制器,然后在viewWillAppear中添加button 第二:利用tabbarController的view controllers的属性,整体创建一个控制器数组赋值,然后在添加button,第三: 利用GCD  异步+主线程 将add方法放到 主线程中,

    dispatch_async(dispatch_get_main_queue(), ^{

        

         [self addComposeButton];     

    });

或者如下代码:











2. 如何防止图片渲染

resultImage = [resultImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];


3. 解决push后的隐藏tabbar的问题

-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

{

    if (self.childViewControllers.count == 1) {

        

        viewController.hidesBottomBarWhenPushed = YES;


    };

    

    viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"" style:UIBarButtonItemStyleDone target:viewController action:@selector(popViewControllerAnimated:)];

    

    [super pushViewController:viewController animated:animated];

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值