2017-01-08 7 views
-3

このようなアニメーションを作成するにはどうすればよいですか?CGRectアニメーションの作成方法

override func draw(_ rect: CGRect) 
{ 

    let xPointRect = viewWithTag(1)?.alignmentRect(forFrame: rect).midX 
    let yPointRect = viewWithTag(1)?.alignmentRect(forFrame: rect).midY 
    let widthSize = self.viewWithTag(1)?.frame.size.width 
    let heightSize = self.viewWithTag(1)?.frame.size.height 
    let sizeRect = CGSize(width: widthSize! * 0.8, height: heightSize! * 0.4) 

    let rectPlacementX = CGFloat(sizeRect.width/2) 
    let rectPlacementY = CGFloat(sizeRect.height/2) 
    let context2 = UIGraphicsGetCurrentContext() 
    context2?.setLineWidth(2.0) 
    context2?.setStrokeColor(UIColor.red.cgColor) 
    context2?.move(to: CGPoint(x: (xPointRect! - rectPlacementX), y: (yPointRect! - rectPlacementY))) 
    context2?.addLine(to: CGPoint(x: (xPointRect! + rectPlacementX), y: (yPointRect! + rectPlacementY))) 
    context2?.setLineDash(phase: 3, lengths: dashArray) 
    context2?.strokePath() 


    context2.transform = CGAffineTransform(scaleX: 0.8, y: 0.8) 
    UIView.animate(withDuration: 1.0, 
     delay: 0, 
     usingSpringWithDamping: 0.15, 
     initialSpringVelocity: 6.0, 
     options: .allowUserInteraction, 
     animations: { context2.transform = CGAffineTransform.identity }, 
     completion: nil) 
} 

context2にはCGRectであるメンバー.transferが含まれていないため、私の現在のコードは機能しません。

この行をアニメーション化するにはどうすればよいですか?何か案が?

+0

達成したいことを説明してください。 – shallowThought

+0

この説明は十分ですか? –

+0

説明が追加されていません。あなたは何を達成したいですか?線画をアニメーション化しますか? – shallowThought

答えて

1

CGRectは表示されないため、アニメーション化する理由はわかりません。

UIViewのフレームをアニメートすると仮定します。

アニメーションブロック内のUIViewの多くのプロパティを変更できます。フレーム:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 
someParentView.addSubview(view) 
UIView.animate(withDuration: 2.5) { 
    someUIView.frame = CGRect(x: 100, y: 100, width: 100, height: 100) 

} 
関連する問題