TabBar添加中间自定义按钮

作者: 昵称太难取啦 | 来源:发表于2017-03-09 23:19 被阅读58次

    有时候APP会有标题这样的需求,看了一些demo 感觉实现的都比较复杂(当然人家写的都是很精致的),于是自己就用简单的方法实现了下基本的需求.

    效果如图:

    具体实现通过自定义UITabBarController和UITabBar

    如下图:

    在TabBarController中将系统的TabBar指向我们定义的

    代码如下:

    WJTabBar *bar  =[WJTabBar new];

    [self setValue:bar forKey:@"tabBar"];

    然后在Tabbar中申明自定义的按钮

     @property(nonatomic,weak) UIButton *customCenterButton;

    实现思路是:首先判断是否有自定义的按钮 如果有的话就重新布局tabbar的UITabBarButton位置 如果没有就不改变。

    通过Xcode的界面分析,可以看到TabBar下面的SubView,我们需要改变的是UITabBarButton。

    剩下的就是怎么布局的问题,在layoutSubviews中重新布局,代码如下:

    到这里基本上能实现需求,但是当自定义的按钮高度超过Tabbar的时候,超过的部分是无法响应点击事件的,解决方法也很简单,如下代码

    //让超过tabbar高度的部分也能点击

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{

    if (_customCenterButton) {

    //如果点击的点位于_customCenterButton内就返回_customCenterButton

    if (CGRectContainsPoint(_customCenterButton.frame, point)) {

    return _customCenterButton;

    }

    }

    return [super hitTest:point withEvent:event];

    }

    到这基本能满足大部分的需求了,

    相关文章

      网友评论

        本文标题:TabBar添加中间自定义按钮

        本文链接:https://www.haomeiwen.com/subject/zmsflttx.html