使用圆形按钮自定义标签栏迅速发布

我一直在自定义带有中心圆形按钮的标签栏,还设置了圆角半径曲线,我在情节提要中进行了如下设置,

使用圆形按钮自定义标签栏迅速发布

我已经将图像渲染为原始图像,但是我的问题是,当我在模拟器中运行时,圆角的上半部丢失了,如图所示,

使用圆形按钮自定义标签栏迅速发布

我已经为UITabBar设置了类,

class ProminentTabBar: UITabBar {
    var prominentButtonCallback: (()->())?
    
    override func hitTest(_ point: CGPoint,with event: UIEvent?) -> UIView? {
        guard let items = items,items.count>0 else {
            return super.hitTest(point,with: event)
        }
        
        let middleItem = items[items.count/2]
        let middleExtra = middleItem.imageInsets.top
        let middleWidth = bounds.width/CGFloat(items.count)
        let middleRect = CGRect(x: (bounds.width-middleWidth)/2,y: middleExtra,width: middleWidth,height: abs(middleExtra))
        if middleRect.contains(point) {
            prominentButtonCallback?()
            return nil
        }
        return super.hitTest(point,with: event)
    }
}

和tabbarcontroller也在行下方添加了

override func viewDidLoad() {
    super.viewDidLoad()
    
    let prominentTabBar = self.tabBar as! ProminentTabBar
    prominentTabBar.prominentButtonCallback = prominentTabTaped
}

func prominentTabTaped() {
    selectedIndex = (tabBar.items?.count ?? 0)/2
}

此来源来自堆栈溢出票证:-How do we create a bigger center UITabBar Item

有人对此有解决方案吗?

kao10000 回答:使用圆形按钮自定义标签栏迅速发布

制作

tabbar.clipsToBounds = false

您可以通过代码或在 StoryBoard 中更改它

继续编码........ :)

本文链接:https://www.f2er.com/1293923.html

大家都在问