Ich mache eine TVOS App. Ich habe eine Sammlungsansicht Zelle, die eine UIImageView hat. Ich überprüfe "Bild anpassen, wenn fokussiert" im Interface-Generator, damit ich den vom System bereitgestellten Fokus-Effekt für das Bild verwenden kann. Das Problem ist, dass ich auch eine Grenze für das Bild einstelle. Der Rahmen wird nicht mit dem Bild vergrößert, wenn die Ansicht scharf wird und das Bild größer wird. Irgendwelche Ideen wie kann ich die Abmessungen des Rahmens aktualisieren, wenn die Ansicht fokussiert ist?AppleTV fokussierte Bild Grenze skaliert nicht
0
A
Antwort
1
Ich denke, Sie sollten Ihre imageView in UIView-Objekt setzen und dann den Rand dieser Ansicht geben. Danach sollten Sie die "didUpdateFocus" -Methode überschreiben und die Animation wie gewünscht gestalten. siehe, In meinem Fall habe ich imageView in "ViewBg" -Objekt setzen und diesem Objekt Animation geben.
In Ihrer Klasse:
func viewAnimation(view:UIView , isNormal:Bool)
{
UIView.animate(withDuration: 0.5, animations: {() -> Void in
if isNormal{
view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0);
}
else{
view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3);
}
})
{ (finished) -> Void in
}
}
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
if(context.previouslyFocusedView != nil)
{
if (context.previouslyFocusedView is testCell)
{
let cell:testCell = context.previouslyFocusedView as! testCell
self.viewAnimation(view: cell.viewBg, isNormal: true)
}
}
if(context.nextFocusedView != nil)
{
if (context.nextFocusedView is testCell)
{
let cell:testCell = context.nextFocusedView as! testCell
self.viewAnimation(view: cell.viewBg, isNormal: false)
}
}
}
In Ihrer CollectionViewCell Methode:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell:testCell = collectionView.dequeueReusableCell(withReuseIdentifier: "testCell", for: indexPath) as! testCell
cell.imgIcon.image = UIImage(named:arrayIconImages.object(at: indexPath.row) as! String)
cell.viewBg.layer.borderColor = UIColor.black.cgColor
cell.viewBg.layer.borderWidth = 10.00
return cell
}
So Auf diese Weise können Sie Animation mit Grenze bei Bildansicht geben.
Verwandte Themen
- 1. Grenze nicht decken Bild
- 2. Chrome Print CSS-Bild wird nicht skaliert
- 3. Bild skaliert nicht auf IE 11
- 4. Laden Bild in Leinwand - Bild skaliert
- 5. Wie UIImageView passen skaliert Bild
- 6. Bild verliert Qualität, wenn skaliert
- 7. HTML CSS Grenze Bild
- 8. iOS: Wie skaliert man das Bild schön?
- 9. Erhöhen TextInputLayout fokussierte Textgröße
- 10. NSBeispiel skaliert nicht
- 11. Klare Bild mit Fade-Grenze
- 12. Wie Bild Grenze in IE
- 13. Heruntergeladene Bild hat keine Grenze
- 14. Obere Grenze Bild in CSS3
- 15. SVG-Bild schlecht skaliert in IE11
- 16. JSP Wie skaliert man ein Bild?
- 17. Wie skaliert man das Bild mit CSS
- 18. Rotierendes Bild innerhalb einer Grenze
- 19. Zeichnen Grenze um Bild QT.
- 20. Bild wird nicht kleiner skaliert, wenn die Auflösung abnimmt
- 21. Meteor CollectionFS: S3 GraphicsMagick skaliert das Bild nicht
- 22. CGAffineTransformMakeRotation() skaliert das Bild auf dem iPad?
- 23. Bitmap skaliert nicht zu imageView
- 24. AspxGridView standardmäßig fokussierte Zeile
- 25. Overlay nicht korrekt skaliert CSS
- 26. Fokussierte Verantwortlichkeit einer Methode
- 27. Webseitensymbole: nicht proportional skaliert
- 28. Thread-Pool wird nicht skaliert
- 29. tvOS AppleTV 4. Kann die Farben nicht ändern
- 30. Cookie-Daten können nicht in Swift 2 archiviert werden (AppleTV)