Ok, ich habe eine Sammlungsansicht und eine benutzerdefinierte Zelle, die ich mit Xib-Datei erstellt, so dass ich die gleiche Zelle in einer anderen Sammlungsansicht in einer anderen Ansicht verwenden konnte. In meinem cellForItemAtIndexPath ich habe:CAGradientLayer wird nicht angezeigt?
let cell = collectionView.dequeueReusableCellWithReuseIdenitifier(cellIdentifier, forIndexPath: indexPath) as! StoriesCollectionViewCell
cell.setCell(arrArticles[indexPath.item])
return cell
und in meiner benutzerdefinierten Zellklasse im SetCell func:
func setCell(article : Article) {
self.articleImageView.alpha = 0.0
self.storyHeadline.text = article.headline
//set the background for the txtView to a gradient, from clear to white
let gradient = CAGradientLayer()
gradient.frame = txtView.frame
gradient.colors = [UIColor.clearColor().CGColor, UIColor.whiteColor().CGColor]
// gradient.startPoint = txtView.frame.origin
// gradient.endPoint = CGPointMake(txtView.frame.maxX, txtView.frame.maxY)
self.txtView.layer.insertSublayer(gradient, atIndex: 0)
//for testing purpose only, will be replaced by web service response
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .NoStyle
self.storyHeadlineDate.text = dateFormatter.stringFromDate(article.date!)
manager.imageForArticle(article) { (image) in
self.articleImageView.image = image
UIView.animateWithDuration(1, animations: {
self.articleImageView.alpha = 1.0
})
}
self.layer.cornerRadius = 5.0
}
alles funktioniert, wie ich es anders als die Gradient Hintergrundfarbe möge. Ich fragte mich auch, ob es eine bessere Delegate-Methode gab, um diesen Gradienten zu setzen. TxtView ist eine UIView, die von der xib, btw erstellt und verlinkt wurde.
prüfen Steigungsrahmen Eigenschaft, Breite, Höhe ... –
ja ich habe überprüft, dass zum Zeitpunkt der in die Unterschicht eingeführt wird, nach LLDB Print-Anweisung ist es: Breite - 180.0, Höhe - 35.0 ... das ist als txtView als das gleiche korrekt, und beide haben die gleichen x, y-Werte –