Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Superview边的编程自动布局约束_Swift_Autolayout_Nslayoutconstraint - Fatal编程技术网

Swift Superview边的编程自动布局约束

Swift Superview边的编程自动布局约束,swift,autolayout,nslayoutconstraint,Swift,Autolayout,Nslayoutconstraint,我在Xcode的故事板编辑器中做了很多自动布局,但我很少在代码中做任何事情。在一个特定实例中,我需要创建与这些约束等价的编程: //Trailing textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .trailing, relatedBy: .equal, toItem: cell.commentBox, attribute: .trailing, multiplier: 1, constant: 15))

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

//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))

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

//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
试试这个:

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

您是否关闭了
textView.translatesAutoresizingMaskIntoConstraints=false
?您得到了哪些冲突约束?注意:对于尾部约束和底部约束,您希望
常量
值为负值。也就是说,您希望子视图的
后缘
边缘位于超级视图的
后缘
边缘左侧的
15点
。。。因此,您希望使用
-15
(并且合乎逻辑的是,
-10
用于
底部约束)。您是否关闭了
textView.translatesAutoResizezingMaskintoConstraints=false
?您得到了哪些冲突约束?注意:对于尾部约束和底部约束,您希望
常量
值为负值。也就是说,您希望子视图的
后缘
边缘位于超级视图的
后缘
边缘左侧的
15点
。。。因此,您希望使用
-15
(并且,按照逻辑,
-10
用于
底部约束)。