In viewDidLoad
instanziiere ich einen UIView
und füge diesem UIView einen Farbverlaufslayer hinzu.UIView mit Farbverlaufsschicht, die den festgelegten Bedingungen nicht entspricht
Dies funktioniert gut auf dem iPhone, aber auf dem iPad, UIView
erstreckt sich nicht, um den gesamten Bildschirm zu füllen. Bitte beachten Sie den folgenden Screenshot für iPad sim.
Ich habe das Hinzufügen Einschränkungen versucht sowohl programmatisch und von XCode verwenden.
Es scheint, dass, sobald ich die CAGradientLayer hinzufügen, die UIView nicht mit den Einschränkungen übereinstimmt, die ich entweder programmgesteuert oder mithilfe von XCode-Tools festgelegt habe.
Beispielcode:
gradientLayer = CAGradientLayer()
gradientLayer.frame = self.view.bounds
gradientLayer.locations = [0.5, 1.0]
gradient_View.backgroundColor = UIColor.blueColor()
let color1 = self.opus_Page_Background_Color.CGColor as CGColorRef
let color4 = self.opus_Page_Tertiary_Color.CGColor as CGColorRef
gradientLayer.colors = [color1, color4]
self.gradient_View.frame = self.view.bounds
self.gradient_View.layer.insertSublayer(gradientLayer, atIndex: 0)
gradient_View.translatesAutoresizingMaskIntoConstraints = false
let leadingConstraint = NSLayoutConstraint(item: gradient_View, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0)
leadingConstraint.active = true
view.addConstraint(leadingConstraint)
let trailingConstraint = NSLayoutConstraint(item: gradient_View, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0)
trailingConstraint.active = true
view.addConstraint(trailingConstraint)
let widthConstraint = NSLayoutConstraint(item: gradient_View, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 100)
view.addConstraint(widthConstraint)
let heightConstraint = NSLayoutConstraint(item: gradient_View, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 100)
view.addConstraint(heightConstraint)
NSLayoutConstraint.activateConstraints([leadingConstraint, trailingConstraint, widthConstraint, heightConstraint])
bitte entferne width constraint wie per @arun – Alok
DIE LÖSUNG war, den Code in 'viewDidLayoutSubviews' zu setzen. Ich habe die Einschränkungen willkürlich eingehalten, weil ich versucht habe zu sehen, ob ALLE Einschränkungen funktionieren würden, aber danke auch für diese Tipps. –