iOS 9/Swift 2.0中的UIDynamics问题



swift2 (2)

要解决第一个块问题:

类型' UIDynamicBehavior '的值没有成员'项'

let attachmentBehavior:UIAttachmentBehavior = behavior as! UIAttachmentBehavior

要解决第二个问题:

无法将类型[UIDynamicItem]的返回表达式转换为返回类型' [UICollectionViewLayoutAttributes]?

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

https://ffff65535.com

好吧,我有一个UICollectionViewFlowLayout支持类似于iOS消息应用程序的类似于弹簧的动画。 无论如何,转换到Swift 2.0后,似乎UIDynamics已经完全改变了。 我试图转换下面的块,但我似乎无法弄清楚,苹果的文件是非常不支持在这里。 以下块需要被转换:

    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)
    }

这两个块都会导致错误:

“类型'UIDynamicBehavior'的值没有成员'项目'”

然后我有:

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

这会产生错误:

“无法将类型为”[UIDynamicItem]“的返回表达式转换为返回类型为”[UICollectionViewLayoutAttributes]?“ “

任何想法如何我可以转换? 我知道迅速2是非常新的,但我不能在网上找到任何关于这个,就像我说,关于UIKitDynamicBehavior的文档是至少没有说。 在此先感谢您的帮助!


这到目前为止,但我现在得到“类型'UIDynamicItem'的值没有成员'indexPath'

我也必须添加这个

让item = attachmentBehavior.items [0]为! UICollectionViewLayoutAttributes





swift2