UINavigationController底部工具栏在hideBarsOnTap之后不保留其状态

时间:2015-11-02 14:14:15

标签: ios xcode swift

我有一个UINavigationController,它有一个底部工具栏,我按照编程方式设置它的高度:

navigationController?.toolbar.frame.size.height += 43.0
navigationController?.toolbar.frame.origin.y -= 43.0
navigationController?.hidesBarsOnTap = true

enter image description here

当我点击我的视图隐藏栏并再次点击以显示它们时,底栏返回到它的默认状态: enter image description here

如果再次显示条形图后如何保留高度?

非常感谢! :)

1 个答案:

答案 0 :(得分:1)

这不是一个很好的方法,但你可以做一些事情,比如在自我视图上放置一个tapGestureRecognizer并计算点击次数。

这样的东西
    var numTaps = 0
    @IBAction func tapOnView(sender: UITapGestureRecognizer) {
        self.numTaps++
        if numTaps%2==0
        {
            self.navigationController?.toolbar.frame.size.height += 43.0
            self.navigationController?.toolbar.frame.origin.y -= 43.0
        }
    }

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer,
        shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool{
            return true
    }

这有点过时但可能有用,可能会稍微延迟一下,以确保在设置工具栏位置后设置高度。

或者尝试提供http://fortawesome.github.io/Font-Awesome/get-started/和子类uitoolbar之一的答案来覆盖sizeThatFits