class videoCell:UICollectionViewCell
{
override init(frame: CGRect) {
super.init(frame: frame)
setUpViews()
}
let titlelabel : UILabel =
{
var label = UILabel()
label.backgroundColor = UIColor.brown
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
func setUpViews()
{
addSubview(titlelabel)
addConstraint(NSLayoutConstraint(item: titlelabel, attribute:.top, relatedBy: .equal, toItem: thumbNailImageView, attribute: .bottom, multiplier: 1, constant: 8))
addConstraint(NSLayoutConstraint(item: titlelabel, attribute:.left, relatedBy: .equal, toItem: thumbNailImageView, attribute: .right, multiplier: 1, constant: 8))
addConstraint(NSLayoutConstraint(item: titlelabel, attribute: .right, relatedBy: .equal, toItem: thumbNailImageView, attribute: .right, multiplier: 1, constant: 0))
addConstraintsWithFormat(format: "V:[v0(20)]", views:titlelabel)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
extension UIView
{
func addConstraintsWithFormat(format:String,views:UIView...)
{
var allViews = [String:UIView]()
for data in 0...views.count-1
{
let key = "v\(data)"
allViews[key] = views[data]
}
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: format, options: NSLayoutFormatOptions(), metrics: nil, views: allViews))
}
}我的上述函数setUpViews()没有在view.Can上呈现我的标签--任何人都可以在这里帮助我。我没有收到任何错误,它编译很好,但没有输出。
addConstraints方法有什么问题吗?
请帮忙谢谢。
如果我添加了这个约束-:
addConstraintsWithFormat(format: "H:|[v0]|", views:titlelabel)并注释这一行代码-:
addConstraint(NSLayoutConstraint(item: titlelabel, attribute:.left, relatedBy: .equal, toItem: thumbNailImageView, attribute: .right, multiplier: 1, constant: 8))
addConstraint(NSLayoutConstraint(item: titlelabel, attribute: .right, relatedBy: .equal, toItem: thumbNailImageView, attribute: .right, multiplier: 1, constant: 0))但这并不能表明我的观点,我需要的地方,以及我希望它如何发挥作用。
发布于 2017-03-30 12:09:09
好,就这样解决了-:
addConstraint(NSLayoutConstraint(item: titlelabel, attribute: .top, relatedBy: .equal, toItem: thumbNailImageView, attribute: .bottom, multiplier: 1.0, constant: 8))
addConstraint(NSLayoutConstraint(item: titlelabel, attribute: .leading, relatedBy: .equal, toItem: thumbNailImageView, attribute: .leading, multiplier: 4.0, constant: 8))
addConstraint(NSLayoutConstraint(item: titlelabel, attribute: .trailing, relatedBy: .equal, toItem: thumbNailImageView, attribute: .trailing, multiplier: 1.0, constant: 0))
addConstraint(NSLayoutConstraint(item: titlelabel, attribute: .height, relatedBy: .equal, toItem: self, attribute: .height, multiplier: 0, constant: 20))但谁能详细解释一下这是怎么回事。这是谷歌搜索出的答案。
发布于 2017-03-30 11:11:34
您必须在setUpViews()方法中调用您的awakeFromNib()函数。
https://stackoverflow.com/questions/43115600
复制相似问题