2016-03-29 150 views
2

我使用的是荚SDCAlertView,我需要一个ImageView的+ A文本框添加到我的内容观点,但是我有我的约束麻烦,下面是我的代码。添加约束SDCAlertView

let imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100)) 
imageView.image = UIImage(named: "kalafina") 
imageView.contentMode = .ScaleAspectFill 
let alert = AlertController(title: "Testing", message: "1234") 
imageView.translatesAutoresizingMaskIntoConstraints = false 
alert.contentView.addSubview(imageView) 


let imageHeightConstraint = NSLayoutConstraint(item: imageView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 100) 
let imageWidthConstraint = NSLayoutConstraint(item: imageView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 100) 
let imageCenterXConstraint = NSLayoutConstraint(item: imageView, attribute: .CenterX, relatedBy: .Equal, toItem: alert.contentView, attribute: .CenterX, multiplier: 1.0, constant: 0.0) 
let imageTopConstraint = NSLayoutConstraint(item: imageView, attribute: .Top, relatedBy: .Equal, toItem: alert.contentView, attribute: .Top, multiplier: 1.0, constant: 0) 
let imageBottomConstraint = NSLayoutConstraint(item: imageView, attribute: .Bottom, relatedBy: .Equal, toItem: alert.contentView, attribute: .Bottom, multiplier: 1.0, constant: 0) 
alert.view.addConstraint(imageTopConstraint) 
alert.view.addConstraint(imageBottomConstraint) 
alert.view.addConstraint(imageHeightConstraint) 
alert.view.addConstraint(imageWidthConstraint) 
alert.view.addConstraint(imageCenterXConstraint) 

alert.addAction(AlertAction(title: "Cancel", style: .Preferred)) 
alert.addAction(AlertAction(title: "Ok", style: .Default, handler: { action in 

    print("Sending") 

})) 
alert.present() 

这是我的结果enter image description here

+0

你期待什么结果呢? – gabbler

+0

据https://github.com/sberrevoets/SDCAlertView/issues/146,他提到,要警惕大小相应,如果我加入我的约束权 – Happiehappie

回答

1

你加入你的约束alert.view,但你应该把它们添加到alert.contentView。如果你这样做,一切都按预期工作。

+0

toItem:alert.contentView,肯定我加入到内容查看 – Happiehappie

+0

是的,但然后调用'alert.view.addConstraint()'。这会在准备好加载之前加载视图。如果您更改为'alert.contentView.addConstraint()'它应该工作的罚款。 –