コメント私は(コメントの泡が下から上にスライド)私のiOSアプリで潜望鏡スタイルのコメントのために、このコードを使用しています:https://github.com/yoavlt/PeriscommentViewスウィフトアニメーションが
そして、これは実際にアニメーション化するコードですコメントの出入り:
public func addCell(cell: PeriscommentCell) {
cell.frame = CGRect(origin: CGPoint(x: 0, y: self.frame.height), size: cell.frame.size)
visibleCells.append(cell)
self.addSubview(cell)
UIView.animateWithDuration(self.config.appearDuration, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: {() -> Void in
let dy = cell.frame.height + self.config.layout.cellSpace
for c in self.visibleCells {
let origin = c.transform
let transform = CGAffineTransformMakeTranslation(0, -dy)
c.transform = CGAffineTransformConcat(origin, transform)
}
}, completion: nil)
UIView.animateWithDuration(self.config.disappearDuration, delay: self.config.stayDuration, options: UIViewAnimationOptions.CurveEaseIn, animations: {() -> Void in
cell.alpha = 0.0
}) { (Bool) -> Void in
self.visibleCells.removeLast()
cell.removeFromSuperview()
}
}
上記のコードの問題は、新しいコメントが追加されると、前のコメントと重複して表示されることがあることです。予想される動作は、前のコメントが上にスライドし、新しいコメントが代わりに行われることです。私は、これは主に、前のコメントが消え始めてからまだ消えていない新しいコメントを追加するときに起こることに気づいた。
私はself.visibleCells.removeLast()にブレークポイントを入れようとしましたが、これは最後のコメントが消えたときにのみ呼び出されるように見えるので、forループが上に移動するので、これが正しく動作すると思いますすべての可視セル、およびコメントがフェードアウトしても、それはまだ見えます)。
これで任意の助けいただければ幸いです。
ありがとうございます!
実際に誰かが同じ問題を報告しました:https://github.com/yoavlt/PeriscommentView/issues/5 – Prabhu