ios - 将 View 限制为其 super View 的最简单方法

标签 ios swift constraints

我有一个名为 containerViewUIView其中包含我 View 中的所有 UI 元素。我制作 containerView 的原因首先是因为我想为屏幕较小的设备实现键盘支持,并且我无法嵌入 self.view进入UISCrollView

当我对我的 containerView 设置约束时,我这样做:

NSLayoutConstraint.activate([
    containerView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
    containerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
    containerView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
    containerView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),

    /* constraints of containerView's subviews */
}

因为我限制了我的 containerView 的所有四个 anchor 至view ,我很想知道是否有一种不太冗长的方法(也许是一句简单的话?)可以实现这一目标。

最佳答案

使用内置方法,我相信这将是最短的方法。

let views = ["contentView": contentView]
NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "|-[contentView]-|", views: views))
NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[contentView]-|", views: views))

但是这是您经常做的事情,创建一个可以调用的扩展将是一个更好的选择。

关于ios - 将 View 限制为其 super View 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53216199/

相关文章:

ios - iMessage 键盘属于什么类别?

swift - UICollectionView 中的 ScrollToItem 没有发生任何事情

swift - Vapor中描述依赖包的majorVersion和minor

ios - 因约束而导致崩溃

sql - 如果另一列为空,禁止用户更新列?

ios - 约束未针对所有屏幕设备正确调整大小

ios - Xcode中的应用沙箱

ios - Xcode 在打开 .xcodeproj 文件时崩溃

ios - 带有自定义转换的 UIViewController;模态呈现后丢失

swift - 来自base64 url​​的数据