2015-09-29 18 views
5

In Ordnung, ich habe eine UICollectionViewFlowLayout, die federähnliche Animationen beim Scrollen ähnlich wie die iOS-Nachrichten App unterstützt. Wie auch immer, nach der Umstellung auf Swift 2.0 scheint sich UIDynamics komplett verändert zu haben. Ich versuche, die folgenden Blöcke zu konvertieren, aber ich kann es einfach nicht herausfinden und die Dokumentation von Apple ist hier sehr uninteressant. Folgende Bausteine ​​müssen noch umgesetzt werden:UIDynamics Problem in iOS 9/Swift 2.0

var noLongerVisibleBehaviors = self.dynamicAnimator.behaviors.filter({behavior in 
     var currentlyVisible = itemsIndexPathsInVisibleRectSet.member(behavior.items![0].indexPath) != nil 
     return !currentlyVisible 
    }) 

    for (index, obj) in noLongerVisibleBehaviors.enumerate() { 
     self.dynamicAnimator.removeBehavior(obj) 
     self.visibleIndexPathsSet.removeObject(obj.items![0].indexPath) 
    } 

Beiden Blöcke verursachen den Fehler:

"Value of type 'UIDynamicBehavior' has no member 'items' "

Dann habe ich:

override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]? { 
     return self.dynamicAnimator.itemsInRect(rect) 
    } 

, die den Fehler erzeugt:

"Cannot convert return expression of type '[UIDynamicItem]' to return type '[UICollectionViewLayoutAttributes]?' "

Irgendwelche Ideen auf wie kann ich das umwandeln? Ich weiß, dass swift 2 sehr neu ist, aber ich kann nichts online finden und wie gesagt, die Dokumentation zu UIKitDynamicBehavior fehlt zumindest. Vielen Dank im Voraus für Ihre Hilfe!

Antwort

4

den ersten Block Problem zu beheben:

Value of type ' UIDynamicBehavior ' has no member 'items'

let attachmentBehavior:UIAttachmentBehavior = behavior as! UIAttachmentBehavior 

das zweite Problem zu beheben:

Cannot convert return expression of type ' [UIDynamicItem] ' to return type ' [UICollectionViewLayoutAttributes]? '

return self.dynamicAnimator.itemsInRect(rect) as? [UICollectionViewLayoutAttributes] 
0

Das bin ich so weit gekommen, aber ich habe jetzt „Wert von Typ 'UIDynamicItem' hat kein Mitglied 'indexPath'

Ich musste zu einem dd dies auch

let item = attachmentBehavior.items[0] as! UICollectionViewLayoutAttributes