2017-04-11 18 views
1

私はハートビートアニメーション:連続心拍モニターライン

heartbeat

、あなたは何を私を理解すれば、それは継続的に私のビューに表示されますので、私は私のサブビューにループにそれをしようとしているを象徴するかのイメージを持っています平均。これまでのところ、私のサブビューでは無限に移動して表示されるようになっていますが、右から見ると完全に消えた後に再び表示されるため、連続していません。すぐに完全にビューに入ったので、実際の心拍を象徴します。私のコードは私のviewDidLoadに次のようになります。

self.heartbeatLoading.frame.origin = CGPoint(x: 0 - heartbeatLoading.frame.size.width, y: 10)  
let animation: UIViewAnimationOptions = [.repeat, .curveLinear] 

UIView.animate(withDuration: 5.0, delay: 0, options: animation, animations: { 
     self.heartbeatLoading.frame = self.heartbeatLoading.frame.offsetBy(dx: self.view.frame.width + self.heartbeatLoading.frame.width, dy: 0.0) 
}, completion: nil) 
+0

アニメーションのハートビートイメージとスクリーンショットを表示できますか? –

+0

私はスクリーンショットを追加しましたが、その心臓鼓動がuiviewから消えているのがわかりますが、同じ画像の2つの異なるインスタンスのようには見えませんので、別のインスタンスをそのまま続けてください。 –

+0

@ UmarYaqubはこれを解決しましたか? –

答えて

0

は1 UIViewを取り、スーパービューとして、このクラスを設定します。アニメーションを開始し、必要に応じてアニメーションを停止します。

@IBDesignable class Pulse : UIView 
{ 
    var animatingView : UIView? 
    @IBInspectable var pulseImage: UIImage = UIImage(named: "defaultImage")!{ 
     didSet { 
       animatingView = UIView(frame: self.bounds) 
       let imgView = UIImageView(frame : self.bounds) 
       animatingView?.clipsToBounds = true 
       animatingView?.addSubview(imgView) 
       self.addSubview(animatingView!) 
     } 
    } 
    func startAnimationWith(duration : Double = 0.5) 
    { 
     if animatingView != nil 
     { 
      animatingView?.frame = CGRect(x: 0, y: 0, width: 0, height: (animatingView?.frame.size.height)!) 
      UIView.animate(withDuration: duration, delay: 0, options: .repeat, animations: { 
       self.animatingView?.frame = CGRect(x: 0, y: 0, width: (self.animatingView?.frame.size.width)!, height: (self.animatingView?.frame.size.height)!) 
      }, completion: { (isDone) in 

      }) 
     } 
    } 
    func stopAnimation() 
    { 
     if animatingView != nil 
     { 
      self.animatingView!.layer.removeAllAnimations() 
     } 
    } 
    override init(frame : CGRect) { 
     super.init(frame : frame) 
    } 
    convenience init() { 
     self.init(frame:CGRect.zero) 
    } 
    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 
} 
関連する問題