2016-12-25 6 views
3

コメント私は(コメントの泡が下から上にスライド)私の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ループが上に移動するので、これが正しく動作すると思いますすべての可視セル、およびコメントがフェードアウトしても、それはまだ見えます)。

これで任意の助けいただければ幸いです。

ありがとうございます!

+0

実際に誰かが同じ問題を報告しました:https://github.com/yoavlt/PeriscommentView/issues/5 – Prabhu

答えて

0

私はそのリポジトリのクローンを取得しました。私のデバイス上で実行されています。問題は機能を書き換えようとしています。そんなことしたらダメ。代わりに、次の行を追加してください:

@IBAction func addNewCell(sender: UIButton) { 
    self.periscommentView.addCell(UIImage(named: "twitterProfile")!, name: "Your_Name_Here", comment: "Your_Comment_Here") 
} 

それだけです!私はちょうどそれをチェックし、それは完全に動作します!

アルファを変更したり、上に移動したりしないでください。図書館はこれらすべてのものをします!がんばろう! ;)

+0

私はあなたが何を意味しているか分かりません。問題が呼び出しコードにあると言っていますか?誰かがコメントを追加するたびに、私はaddCellを呼び出します。上に引用した行は、私が使っていないサンプルの呼び出しコードです。最後にこの問題を再現するには、テキストボックスとボタンを追加し、ボタンアクションでaddCellメソッドを呼び出す必要があります。次に、コメントを追加します。そのコメントが消え去ると、別のコメントを追加します。重複するコメントが表示されます。 – Prabhu

+0

@Prabhu私はちょうどそれを確認:)私はtextFieldとボタンを追加しました。ボタンをクリックすると、私は私の答えで説明した1行だけを呼び出しています。そして、重複はありませんでした。だから、あなたは余分なコードを追加しました。ボタンをクリックするだけで自分のコードを追加しようとします。それは完全に動作します。あなたに答える前に私はそれをチェックしました。 – iamalizade

+0

私は確かにこれを正確にやっています。私の呼び出しコードには1行しかありません。 – Prabhu

関連する問題