Ich habe eine benutzerdefinierte UICollectionViewCell
mit einem benutzerdefinierten Label drin. Wenn der Benutzer auf die Zelle tippt, möchte ich das Aussehen des benutzerdefinierten Labels animieren. Ich habe versucht, eine Referenzvariable zu behalten und collectionView.reloadData()
aufzurufen, aber in meinem cellForItemAtIndexPath
wird das Update nicht animiert. Eher passiert es sofort. Wie kann ich die Schrift- und Größenänderungen des Etiketts animieren?Animieren von UICollectionViewCell Label auf Auswahl
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
self.flatPicker.reloadData()
self.variable = indexPath.row
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! UICollectionViewCell
cell.label.text = self.array[indexPath.row]
if indexPath.row == variable {
UIView.animateWithDuration(2, animations: {
cell.label.font = UIFont.boldSystemFontOfSize(12)
cell.label.textColor = UIColor.darkGrayColor()
})
} else {
UIView.animateWithDuration(2, animations: {
cell.label.font = UIFont.systemFontOfSize(11)
cell.label.textColor = UIColor.lightGrayColor()
})
}
return cell
}
Nicht neu laden ... den Verweis in didSelectItemAtIndexPath abrufen und nur diese Zelle animieren. Ich bin nicht sicher, aber ich denke, es ist eine Methode, cellForRowAtIndexPath, und nach, dass Sie die Referenz im didSelectItemAtIndexPath bekommen können, und es animieren. – UlyssesR