swift - 对 Superview 边缘的编程自动布局约束

标签 swift autolayout nslayoutconstraint

我在 Xcode 的 Storyboard 编辑器中做了很多自动布局,但我很少用代码做任何事情。在一个特定实例中,我需要创建与这些约束等效的程序:

enter image description here

这些约束被添加到 textView 并且父 View 是另一个名为 commentBox 的 View 。到目前为止,我已经尝试过了,但代码感觉多余,并导致约束冲突的自动布局错误:

//Trailing
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .trailing, relatedBy: .equal, toItem: cell.commentBox, attribute: .trailing, multiplier: 1, constant: 15))
//Leading
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .leading, relatedBy: .equal, toItem: cell.commentBox, attribute: .leading, multiplier: 1, constant: 15))
//Bottom
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .bottom, relatedBy: .equal, toItem: cell.commentBox, attribute: .bottom, multiplier: 1, constant: 10))
//Top
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .top, relatedBy: .equal, toItem: cell.commentBox, attribute: .top, multiplier: 1, constant: 10))

知道我做错了什么吗?谢谢!

最佳答案

试试这个:

commentBox.addSubview(textView)

textView.translatesAutoresizingMaskIntoConstraints = false

textView.topAnchor.constraint(equalTo: commentBox.topAnchor, constant: 10).isActive = true
textView.bottomAnchor.constraint(equalTo: commentBox.bottomAnchor, constant: -10).isActive = true
textView.leadingAnchor.constraint(equalTo: commentBox.leadingAnchor, constant: 15).isActive = true
textView.trailingAnchor.constraint(equalTo: commentBox.trailingAnchor, constant: -15).isActive = true

关于swift - 对 Superview 边缘的编程自动布局约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54566517/

相关文章:

ios - Swift - 在 for 循环中创建具有不同名称的变量

iOS 取消模态呈现的导航 Controller

ios - 如何使用 UIImageView Extension 与 Swift 异步加载图像并防止重复图像或错误图像加载到单元格中

ios - 两种不同类别的本地通知

ios - "Present as Popover"转场和 View 大小

animation - 处理 iOS 10 中的 AutoLayout 约束动画差异?

ios - Xcode 7 垂直 ScrollView 问题

iOS - 移动 View 不动画

iphone - 将无法满足的 NSLayoutConstraints 的内存地址映射到 UI 控件

ios - UINavigationController 栏覆盖其 uiviewcontroller 的内容