首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >autoResizingMask for inputAccessoryView不工作

autoResizingMask for inputAccessoryView不工作
EN

Stack Overflow用户
提问于 2018-04-04 14:42:31
回答 2查看 623关注 0票数 1

我正试着用iPhone X和inputAccessoryView打交道。我在ViewController中添加了一个视图,如下所示:

CustomView

我已经定义了一个出口并附在它上。返回与inputAccessoryView相同的视图如下:

代码语言:javascript
复制
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
    }
}

我确保添加了相对于安全区域的约束。以下是我的制约因素:

约束条件

调整后的autoResizingMask

AutoResizingMask

然而,它仍然不起作用。这是输出:

输出

我错过了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-04 18:56:32

与表视图单元格不同的是,据我所知,在输入辅助视图中不支持动态高度计算。

您可以使用固定高度作为附件视图。

但我假设,您只想在界面构建器中更改顶部、底部或高度约束,更改将在下一个构建之后反映出来。

您可以做的是使用一个自定义视图类来连接顶部、底部和高度约束。

然后重写intrinsicContentSize并返回三个约束常量的和。

代码语言:javascript
复制
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)
    }
}

您的布局层次结构可以简化如下:

自动调整掩码的外观如下所示:

最后的结果将如下所示:

票数 1
EN

Stack Overflow用户

发布于 2018-04-04 14:53:39

给文本字段高度和底部约束,尝试删除文本字段的底部约束

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49653977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档