行删除的示例通常实现textFieldDidEndEditing
或其他一些手势/用户输入方法。
我的自动删除功能版本是使用带有alpha的animateWithDuration。这很简单,看起来不错。
挑战是我希望通过NSTimer
或animateWithDuration
自动执行 ,而不管任何用户滚动和用户输入即可。只是一个简单的淡出,从最新的底行开始,当它向上移动时保持alpha 0。
目前,当您打开应用时,您看不到任何行,因为行已经淡出。这很好。每次用户发送新帖子时都会出现问题所有“不可见”行从alpha 1开始再次出现,然后一起淡出。
我需要上面的前几行保持在alpha 0,只有新的底行有alpha 1然后它逐渐消失到alpha 0。
是因为我需要使用cellForRowAtIndexPath
吗?或者我是否需要使用dequeueReusableCellWithIdentifier
方法?
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! CHEFTALKRecipeViewCell
let recipe = recipes[indexPath.item]
if recipe.posterId == posterId {
cell.textView!.textColor = UIColor.blackColor()
// STEP 1
cell.contentView.alpha = 1
} else {
// do something
}
return cell
}
// STEP 2
override func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
UIView.animateWithDuration(2.0) {
cell.contentView.alpha = 0
}
}
答案 0 :(得分:-1)
据我所知,你的问题是所有细胞都有活力。即使是最顶层的人。
如果是这样,你可以从UICollectionView中检索-visibleCells
,并且如果它们的位置只在屏幕的底部,则开始动画。