我试图用inputAccessoryView来处理iPhone X。我在ViewController中添加了一个视图,如下所示:
自定义视图
ios - 用于inputAccessoryView的autoResizingMask不起作用-LMLPHP
我已经定义了一个出口并附属于它。返回与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
    }
}

我已经确保添加了与安全区域相关的约束。以下是我的限制:
约束条件
ios - 用于inputAccessoryView的autoResizingMask不起作用-LMLPHP
在某人身上调整成这样:
自动扫描
ios - 用于inputAccessoryView的autoResizingMask不起作用-LMLPHP
然而,它仍然不起作用。输出如下:
输出
ios - 用于inputAccessoryView的autoResizingMask不起作用-LMLPHP
我错过了什么?

最佳答案

与表视图单元格不同,据我所知,在输入附件视图中不支持动态高度计算。
您可以使用固定高度查看附件。
但我假设,您只想在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不起作用-LMLPHP
自动调整大小的掩码可能如下所示:
ios - 用于inputAccessoryView的autoResizingMask不起作用-LMLPHP
最终结果如下:
ios - 用于inputAccessoryView的autoResizingMask不起作用-LMLPHP

关于ios - 用于inputAccessoryView的autoResizingMask不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49653977/

10-11 17:51