Ich bin zum ersten Mal mit UICollectionView nicht sicher, wie dies zu tun ist. Ich versuche, eine App für TVOS zu erstellen und möchte das Menü wie airbnb tvos App anzeigen. Ich habe irgendwie versucht, dieses bestimmte Format zu erreichen, aber das Problem ist über den ersten Auftritt, weil der erste Auftritt auf Standardpunkten, d. H. 0,0 der Sammlungsansicht stattfindet, was zu einem Durcheinander führt. Heres mein Code was ich bisher gemacht habe.Richten Sie die Zelle in der Mitte (horizontal) in UICollectionView
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as? ShowCell {
menuData = dataArray[indexPath.row] as! NSDictionary
cell.configureCell(menuData.objectForKey("name") as! String)
return cell
}
else {
return ShowCell()
}
}
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
if let previousItem = context.previouslyFocusedView as? ShowCell {
UIView.animateWithDuration(0.2, animations: {() -> Void in
previousItem.showImg.frame.size = self.originalCellSize
})
}
if let nextItem = context.nextFocusedView as? ShowCell {
UIView.animateWithDuration(0.2, animations: {() -> Void in
nextItem.showImg.frame = CGRectMake(
self.view.frame.width/2 - self.focusCellSize.width/2,
169.0,
self.focusCellSize.width,
self.focusCellSize.height)
})
}
}
Dies ist die Ansicht, die ich erreichen möchte, und ich habe es erreicht, aber für die spätere Indizes bedeutet Index nach 1,2
Dies ist das Startverhalten, wenn es erscheint das erste Mal, und wenn ich die Kontrolle, um es bewegen sie wie diese
geschiehtDas ist, was ich eigentlich will, aber ich kämpfe darin, meine fokussierte Zelle in die Mitte des Bildschirms zu bekommen und ähnlich meine vorherige und nächste auf beiden Seiten. Ich weiß, dass ich Rahmenkoordinaten explizit gebe, die nicht korrekt sind, das war nur ein Testfall, den ich lief und nichts anderes aber ich konnte den Weg nicht finden
Würde nicht Einstellung 'adjustsImageWhenAncestorFocused' auf das Bild, um den Job in Ihrem Fall außer Kraft zu setzen? –
habe das noch nicht probiert, aber die Sache ist, ich habe kein Bild gesetzt nur ich muss alle Zellen reparieren! –
Warum verwenden Sie nicht einen UIpageViewController anstelle von CollectionView? Mit dem, was Sie erreichen möchten, mit horizontalem Scrollen und Animation zwischen den Elementen scheint es, dass dies die bessere Wahl für Sie ist. Alles, was Sie tun müssen, ist, die Ansicht (ähnlich einer Sammlungszelle) zu strukturieren, die verwendet werden würde, d. H. Geben Sie ihr das Bild und die Beschriftung, dann behandelt der Controller die Animation und den Paging. https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/ –