输入访问视图中的UILabel暂时不可见

时间:2018-04-11 15:51:20

标签: ios swift uicollectionview uinavigationbar inputaccessoryview

我在UILabel中添加inputAccessoryView作为文本视图的占位符。当我的应用程序构建并运行,并且视图控制器第一次被推送到导航堆栈时,一切正常。但是,对于所有后续推送,UILabel在视图控制器完全呈现之前是不可见的。

enter image description here请注意底部的“发表评论”

我还发现,如果我不打电话给setNavigationBarHidden,问题就会消失。以下是代码的一部分。 ExpandableIAView只是一个自定义UIView,其中使用自动布局添加了占位符UILabel

class DetailedPageController: UICollectionViewController {

    lazy var inputContainerView: ExpandableIAView = {
        let view = ExpandableIAView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 50))
        view.delegate = self
        return view
    }()

    override var inputAccessoryView: UIView? {
        get {
            return inputContainerView
        }
    }

    override var canBecomeFirstResponder: Bool {
        return true
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.setNavigationBarHidden(true, animated: false)
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        navigationController?.setNavigationBarHidden(false, animated: true)
    }

}

ExpandableIAView

直接从这里复制(how can i increase the height of an inputAccessoryView)。占位符UILabel被约束到视图的顶部,左侧和底部锚点。

0 个答案:

没有答案