我试图用inputAccessoryView
来处理iPhone X。我在ViewController
中添加了一个视图,如下所示:
自定义视图
我已经定义了一个出口并附属于它。返回与inputAccessoryView
相同的视图,如下所示:
class ViewController: UIViewController {
@IBOutlet weak var textFieldContainer: UIView!
override var inputAccessoryView: UIView? {
return textFieldContainer
}
override var canBecomeFirstResponder: Bool {
return true
}
override func viewDidLoad() {
super.viewDidLoad()
textFieldContainer.autoresizesSubviews = true
}
}
我已经确保添加了与安全区域相关的约束。以下是我的限制:
约束条件
在某人身上调整成这样:
自动扫描
然而,它仍然不起作用。输出如下:
输出
我错过了什么?
最佳答案
与表视图单元格不同,据我所知,在输入附件视图中不支持动态高度计算。
您可以使用固定高度查看附件。
但我假设,您只想在interface builder中更改top、bottom或height约束,并且在下一次生成之后会反映出更改。
您可以做的是,使用一个自定义视图类来连接您的顶部、底部和高度约束。
然后覆盖intrinsicContentSize
并返回三个约束常数的和。
class TextFieldContainer: UIView {
@IBOutlet weak var topConstraint: NSLayoutConstraint!
@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
override var intrinsicContentSize: CGSize {
let contentHeight =
self.topConstraint.constant
+ self.heightConstraint.constant
+ self.bottomConstraint.constant
return CGSize(width: UIScreen.main.bounds.width, height: contentHeight)
}
}
可以简化布局层次结构,如下所示:
自动调整大小的掩码可能如下所示:
最终结果如下:
关于ios - 用于inputAccessoryView的autoResizingMask不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49653977/