Ich habe einen Fortschrittsbalken erstellt, der in einer TableView verwendet werden soll, indem ein Gradient Layer erstellt wird. Es funktioniert perfekt.CALayer ändert nicht mit Autolayout
iPhone5:
Um die App auf mehreren Geräten zu verwenden, die ich geschaffen habe die UIView in der Storyboard, markiert sie und fügte hinzu Einschränkungen. Wenn ich jedoch die App auf einem iPhone 6 verwende, ändert sich der CALayer nicht.
iPhone6:
Ich finde das sehr dumm, aber nie Geist. Ich habe mich umgesehen und versucht zu verstehen, wie ich das für Monate lösen kann, aber ich bin kurz gekommen. Ist ANYONE wissen, wie man CALayers Größe mit der UIView machen? Jede Hilfe würde sehr geschätzt werden! Vielen Dank.
progressBar = cell.contentView.viewWithTag(3) as UIView!
progressBar.layer.cornerRadius = 4
progressBar.layer.masksToBounds = true
// create gradient layer
let gradient : CAGradientLayer = CAGradientLayer()
// create color array
let arrayColors: [AnyObject] = [
UIColor (red: 255/255, green: 138/255, blue: 1/255, alpha: 1).CGColor,
UIColor (red: 110/255, green: 110/255, blue: 118/255, alpha: 1).CGColor]
// set gradient frame bounds to match progressBar bounds
gradient.frame = progressBar.bounds
// set gradient's color array
gradient.colors = arrayColors
//Set progress(progressBar)
var percentageCompleted = 0.6
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.locations = [percentageCompleted, percentageCompleted]
gradient.endPoint = CGPoint(x: 1, y: 0.5)
// replace base layer with gradient layer
progressBar.layer.insertSublayer(gradient, atIndex: 0)
Vielen Dank - es funktioniert perfekt. Sie antworten, ist abgeschlossen, die Lösung elegant und es hat mein Problem gelöst. Heute werde ich über watchFromNib und willSet lernen. Danke nochmal! (OH und I eingekerbt erste und letzte Zeile des ersten Blocks von Code und instanziiert progressBar durch Zugabe ließ) – KML