选项卡栏中间的选项卡角外

人气:1,951 发布:2023-01-03 标签: ios uikit uitabbar uitabbaritem

问题描述

我想制作一个包含5个选项卡项的选项卡栏。我希望中间的那个(第三个)在选项卡栏的角之外,这可能很难理解,因此我决定添加屏幕截图

我想做一些你可以在上面看到的东西,但我不知道这是怎么可能的。 如果您能推荐我这样做,我将不胜感激。

推荐答案

创建UITabBarControler类并将其分配给TabBarControler.

初始化变量

let button = UIButton.init(type: .custom)

然后在view DidLoad

override func viewDidLoad() {
        super.viewDidLoad()
        
       
        button.setImage(UIImage(named: "IMAGE_NAME_FROM_ASSETS"), for: .normal)
        button.backgroundColor = UIStyle.Color.CameraBG
        button.layer.cornerRadius = 40
        button.addShadow(offset: CGSize(width: 5, height: 5), color: UIStyle.Color.CameraShadow, radius: 5, opacity: 0.1)
        button.addTarget(self, action: #selector(pressedAction(_:)), for: .touchUpInside)
        self.view.insertSubview(button, aboveSubview: self.tabBar)
        
    }

在您的班级中添加viewDidLayoutSubview

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    
    // safe place to set the frame of button manually
    button.frame = CGRect.init(x: self.tabBar.center.x - 40, y: self.view.bounds.height - 100, width: 80, height: 80)
}

要执行的操作单击按钮

@objc func pressedAction(_ sender: UIButton) {
    // do your stuff here
    let nc = UINavigationController(rootViewController: YOURVC.storyboardInstance())
    nc.modalPresentationStyle = .fullScreen
    present(nc, animated: true, completion: nil)
}

71