我想使用UITabbarItems底部的粗线作为选择指示器。由于该应用程序必须能在不同手机尺寸上使用,因此我无法将图像用作选择指示器。这就是为什么我认为我必须使用Swift来做到这一点的原因。(该行必须是页面宽度的1/3)。
我尝试使用UITabBarItem.appearance()但没有成功。
UITabBarItem.appearance()
我解决了我的问题。
这个小代码段的功能:
class FirstViewController: UIViewController { let rectShape = CAShapeLayer() let indicatorHeight: CGFloat = 5 var indicatorWidth: CGFloat! let indicatorBottomMargin: CGFloat = 2 let indicatorLeftMargin: CGFloat = 2 override func viewDidLoad() { super.viewDidLoad() // setup tabbar indicator rectShape.fillColor = UIColor.redColor().CGColor indicatorWidth = view.bounds.maxX / 2 // count of items self.tabBarController!.view.layer.addSublayer(rectShape) self.tabBarController?.delegate = self // initial position updateTabbarIndicatorBySelectedTabIndex(0) } func updateTabbarIndicatorBySelectedTabIndex(index: Int) -> Void { let updatedBounds = CGRect( x: CGFloat(index) * (indicatorWidth + indicatorLeftMargin), y: view.bounds.maxY - indicatorHeight, width: indicatorWidth - indicatorLeftMargin, height: indicatorHeight) let path = CGPathCreateMutable() CGPathAddRect(path, nil, updatedBounds) rectShape.path = path } } extension FirstViewController: UITabBarControllerDelegate { func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) { updateTabbarIndicatorBySelectedTabIndex(tabBarController.selectedIndex) } }