Как скрыть панель вкладок с анимацией в iOS?

Таким образом, у меня есть кнопка, которая подключена к IBAction. Когда я нажимаю кнопку, я хочу скрыть панель вкладок в своем приложении для iOS с анимацией. Это [self setTabBarHidden:hidden animated:NO]; или это [self.tabBarController setTabBarHidden:hidden animated:YES]; не работает. Это - мой код без анимации:

- (IBAction)picture1:(id)sender {
    [self.tabBarController.tabBar setHidden:YES];
}

Любая справка значительно ценилась бы :D

57
задан 5 January 2014 в 19:25

1 ответ

[Swift4.2]

Просто создал расширение для UITabBarController:

import UIKit

extension UITabBarController {
    func setTabBarHidden(_ isHidden: Bool, animated: Bool, completion: (() -> Void)? = nil ) {
        if (tabBar.isHidden == isHidden) {
            completion?()
        }

        if !isHidden {
            tabBar.isHidden = false
        }

        let height = tabBar.frame.size.height
        let offsetY = view.frame.height - (isHidden ? 0 : height)
        let duration = (animated ? 0.25 : 0.0)

        let frame = CGRect(origin: CGPoint(x: tabBar.frame.minX, y: offsetY), size: tabBar.frame.size)
        UIView.animate(withDuration: duration, animations: {
            self.tabBar.frame = frame
        }) { _ in
            self.tabBar.isHidden = isHidden
            completion?()
        }
    }
}

4
ответ дан 1 November 2019 в 15:12

Другие вопросы по тегам:

Похожие вопросы: