美文网首页
最简单实现TabBar中间的凸起按钮

最简单实现TabBar中间的凸起按钮

作者: Gu_Liang | 来源:发表于2018-11-07 10:35 被阅读17次

    最近有个项目需求需要Tabbar中间的按钮显示大按钮,网上看了很多都是自定义TaBar,然后添加一个Btn实现的,个人觉得麻烦且繁琐。

    本人想到了一个非常简便的实现方法:

    1.中间Item的图片有多大就叫UI切多大,然后把这图片放进去

    2.通过[tabBarItem setImageInsets]调整图片到合适的位置

    3.重写UITabBar,然后通过KVC [self setValue:tabar forKey:@"tabBar"];

    4.- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event 方法

    自定义TabBar代码:

    @property (nonatomic , strong) UIView *maxItemImg;

    @property (nonatomic , strong) UIView *maxitem;

    - (void)layoutSubviews

    {

        [super layoutSubviews];

        //查找当前tabbar中凸起按钮

        Class class = NSClassFromString(@"UITabBarButton");

        for(UIView*btninself.subviews) {

            if([btnisKindOfClass:class]) {

                for(UIView*imginbtn.subviews) {

                    if ([img isKindOfClass:NSClassFromString(@"UITabBarSwappableImageView")] && img.frame.size.height > _maxItemImg.frame.size.height) {

                        _maxItemImg= img;

                        _maxitem= btn;

                    }

                }

            }

        }

    }

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

    {

        CGPoint newA = [self convertPoint:point toView:self.maxItemImg];

        if(self.isHidden==NO&& [self.maxItemImgpointInside:newAwithEvent:event]) {

            return_maxitem;

        }

        return[superhitTest:pointwithEvent:event];

    }

    相关文章

      网友评论

          本文标题:最简单实现TabBar中间的凸起按钮

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