두 개의 이미지 사본을 사용하십시오. 화면을 완전히 차지하는 하나의 이미지로 시작합니다. 다른 하나는 왼쪽에 있습니다. 오른쪽으로 애니메이션하여 두 번째 복사본이 첫 번째 복사본을 화면 밖으로 밀어 내도록합니다. 애니메이션이 끝날 때 하나의 복사본 만 화면을 완전히 차지하도록 시작으로 돌아가서 반복합니다. 이미지가 동일하고 동일한 위치에있을 때 점프가 수행되기 때문에 점프가 보이지 않습니다.
좋은 점은 방금 설명한 동작이 반복되는 CABasicAnimation의 기본값이라는 것입니다. 반복이 끝날 때마다 자동으로 시작으로 돌아갑니다. 따라서 저는 개념 증명을 매우 빠르게 작성할 수있었습니다 (Swift 3, iOS 10).
let im = UIImage(named:"stuff")!
// create double image
let r = UIGraphicsImageRenderer(size:
CGSize(width:im.size.width*2,height:im.size.height))
let im2 = r.image { _ in
im.draw(at: .zero)
im.draw(at: CGPoint(x: im.size.width, y: 0))
}
// create layer to hold double image
let imlay = CALayer()
imlay.frame.size = im2.size
imlay.contents = im2.cgImage
// put it inside a single-image-sized container
let scroll = CALayer()
scroll.frame = CGRect(origin: .zero, size: im.size)
scroll.masksToBounds = true
scroll.addSublayer(imlay)
scroll.bounds.origin = CGPoint(x:im.size.width, y:0)
// put it in the interface
self.view.layer.addSublayer(scroll)
// animate
let anim = CABasicAnimation(keyPath: "bounds.origin")
anim.toValue = NSValue(cgPoint: .zero)
anim.duration = 10
anim.repeatCount = .infinity
scroll.add(anim, forKey: nil)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다