20
ViewController.Swift에서 한 지점에서 다른 지점으로 애니메이션을 만들 수있었습니다. 상자를 한 지점으로 움직이게 한 다음 원래 위치로 다시 애니메이션 한 다음 다시 반복하도록이 루프를 반복하는 것이 쉽다는 것을 알았습니다. 나는 개체를 위치로 옮길 수 있었고 "완전한"이동은 다시 되돌려 놓았지만 루프가되지는 않습니다. 어떻게이 일을 성취 할 수 있습니까?UIView.animateWithDuration 스위프트 루프 애니메이션
나는이 작업을 할 수 어쩌면 생각하지만 난 솔직히 모르겠어요
let boxmoves = [CGRect(x: 120, y: 220, width: 100, height: 100), CGRect(x: 120, y: 120, width: 100, height: 100)]
for boxmove in boxmoves {
coloredSquare.frame = boxmove
}
어떻게 장치 폭에 기반을 중심으로 수 (나는 참여 약간의 수학이있는 가정?)?
내 코드 :
let coloredSquare = UIView()
coloredSquare.backgroundColor = UIColor.blueColor()
coloredSquare.frame = CGRect(x: 120, y: 120, width: 100, height: 100)
self.view.addSubview(coloredSquare)
// found repeate but this will not animate as I want.
//UIView.animateWithDuration(2.0, delay: 0.2, options: UIViewAnimationOptions.Repeat, animations: {
UIView.animateWithDuration(2.0, animations: {
coloredSquare.frame = CGRect(x: 120, y: 220, width: 100, height: 100)
}, completion: { finished in
UIView.animateWithDuration(2.0, animations: {
coloredSquare.frame = CGRect(x: 120, y: 120, width: 100, height: 100)
})
})
와우, 그렇게 쉬웠다. @Mazyod 감사합니다! 기기 너비를 기준으로 센터를 중앙에 배치하는 방법을 알고 있습니까? –
@JohanNdiyoLinnarsson 글쎄, 당신은 모든 하드 코딩 된 값을 분명히 제거해야 할 것입니다. 원하는 크기로 프레임을 설정 한 다음 프레임 대신'coloredSquare.center' 속성에 애니메이션을 적용 해보십시오. 보기에 가운데 놓으려면'coloredSquare.center = view.center' 또는 더 나은'coloredSquare.center = CGPoint (x : view.bounds.midX, y : view.bounds.midY)' – Mazyod
을 사용하십시오. autolayout을 사용하면 autoresizingMask 속성을 유연한 여백으로 설정해야합니다. – Mazyod