我在UILabel
中添加inputAccessoryView
作为文本视图的占位符。当我的应用程序构建并运行,并且视图控制器第一次被推送到导航堆栈时,一切正常。但是,对于所有后续推送,UILabel
在视图控制器完全呈现之前是不可见的。
我还发现,如果我不打电话给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
被约束到视图的顶部,左侧和底部锚点。