问题描述
我一直在自定义带有中心圆形按钮的标签栏,还设置了圆角半径曲线,我在情节提要中进行了如下设置,
我已经将图像渲染为原始图像,但是我的问题是,当我在模拟器中运行时,圆角的上半部丢失了,如图所示,
我已经为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
有人对此有解决方案吗?
解决方法
制作
tabbar.clipsToBounds = false
您可以通过代码或在 StoryBoard 中更改它
继续编码........ :)