3

i'm trying to make a custom tab bar with some images i made and i'm having some trouble. I'm trying to add a button to the tab bar and it seems like i can't do it. I want to do something like this: http://a4.mzstatic.com/us/r30/Purple122/v4/6a/43/85/6a438540-94f5-a549-f0b4-3b94d63fbc95/screen696x696.jpeg

Then adding some animations to that button. How can i go about adding that button? Do i need to subclass UITabBarController? Thank you!

RajeshKumar R
  • 15,445
  • 2
  • 38
  • 70
thelegendary3
  • 83
  • 1
  • 8

2 Answers2

1

In TabbarController class, add this code

override func viewDidLoad() {
    super.viewDidLoad()
    setupMiddleButton()

}




// MARK: - AddButton

func setupCenterButton() {
    let centerButton = UIButton(frame: CGRect(x: 0, y: 10, width: 45, height: 45))

    var centerButtonFrame = centerButton.frame
    centerButtonFrame.origin.y = (view.bounds.height - centerButtonFrame.height) - 2
    centerButtonFrame.origin.x = view.bounds.width/2 - centerButtonFrame.size.width/2
    centerButton.frame = centerButtonFrame

    centerButton.layer.cornerRadius = 35
    view.addSubview(centerButton)

    centerButton.setBackgroundImage(#imageLiteral(resourceName: "tabPost"), for: .normal)
    centerButton.addTarget(self, action: #selector(centerButtonAction(sender:)), for: .touchUpInside)

    view.layoutIfNeeded()
}

// MARK: - Center button Actions

@objc private func centerButtonAction(sender: UIButton) {
    selectedIndex = 2
}

It will work.. :)

Anjali jariwala
  • 410
  • 5
  • 15
-1

You should implement the delegate method of UITabBarControllerDelegate:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {


    if viewController == (self.tabBarController?.viewControllers?[theIndexOfTheButton])! {

      // do my stuffs here  
      return false

    }
    return true
}

Don't forget to set self.tabBarController?.delegate = self

jamesthakid
  • 1,265
  • 10
  • 11