Ho creato una barra di avanzamento da utilizzare in una tabellaView creando un gradiente. Funziona perfettamente.CALayer non ridimensionante con Autolayout
iPhone5:
Per poter utilizzare l'applicazione su più dispositivi, io ho creato l'UIView in Storyboard, etichettato e vincoli aggiunto. Tuttavia, quando utilizzo l'app su un iPhone 6, il CALayer non viene ridimensionato.
iPhone6:
trovo questo estremamente stupido, ma non importa. Mi sono guardato intorno e ho cercato di capire come risolvere questo per mesi, ma sono venuto fuori corto. ANYONE sa come ridimensionare i CALayer con UIView? Qualsiasi aiuto sarebbe molto apprezzato! Grazie.
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)
Grazie mille - funziona perfettamente. La tua risposta è completa, la soluzione elegante e ha risolto il mio problema. Oggi apprenderò su awakeFromNib e willSet. Grazie ancora! (Oh e ho frastagliata prima e l'ultima riga del primo blocco di codice e un'istanza ProgressBar con l'aggiunta di lasciare) – KML