swift UITabBar 中间凸起点击完全有反应

2017-12-07  本文已影响0人  乐毅ya

解决 UITabBar 中间凸起点击完全有反应

从网上寻找没有找到一个比较令自己满意的的解决方法,网上大部分都是一些自定义一个继承自系统UITabbar的LBTabbar,来实现中间凸起的按钮的点击触发时间

实现思路
>let midTabBarItenm = UITabBarItem()
        midTabBarItenm.isEnabled = false
>extension UITabBar{
>  open override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        var view = super.hitTest(point, with: event)
        for subview in subviews {
            //用tag是为了寻找中间凸起的按钮
            if subview.tag == 1000{
                //将点击点,转换坐标到凸起的按钮上,判断这个点是否在按钮上
                let newPoint = self.convert(point, to: subview)
                //如果是,将按钮作为处理点击事件的的view 返回
                if subview.bounds.contains(newPoint){
                    view = subview
                }
            }
        }
        return view
    }
}

这样就可以完美的用很少的代码来解决这个中间凸起的点击事件了

上一篇下一篇

猜你喜欢

热点阅读