2016-03-29 2 views
2

Я использую pod SDCAlertView, мне нужно добавить изображениеView + textField в мой контент, но у меня возникают проблемы с моими ограничениями, ниже мой код.Добавление ограничений в 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, я уверен, что добавил в contentview – Happiehappie

+0

Да, но вы вызываете 'alert.view.addConstraint()'. Это загружает представление перед его готовностью к загрузке. Если вы измените это на 'alert.contentView.addConstraint()', он должен работать нормально. –