화면의 맨 위에 사각형을 만들고, 아래에 도달 할 때까지 실행 한 다음 사라집니다. 이 작업은 ViewController의 뷰에 새 UIView를 추가 한 다음 애니메이션이 완료된 후 하위 뷰 배열에서이를 제거하여 수행됩니다. 이 모든 것에 약간의 아름다움을 더하기 위해 CGAffineTransform을 사용하여 랜덤 순환을 적용합니다.UIView 애니메이션에 이상한 효과
여기 호기심 많은 것은 움직일 때 무작위로 크기가 조정된다는 것입니다. 이것은 회전과 관련이 있어야한다는 것을 알고 있습니다. 적용하지 않으면 모든 정사각형이 크기 조정없이 완벽하게 움직이기 때문에 적용됩니다. 적용 할 때 발생합니다.
누군가 테스트 할 수 있기를 바랍니다. 그리고 무슨 일이 일어나는지 말해줘. 왜 사각형이 스케일링되는거야?
이
코드입니다 :import UIKit
class ViewController: UIViewController {
var timer: Timer!
override func viewDidLoad() {
timer = Timer.scheduledTimer(
timeInterval: 1,
target: self,
selector: #selector(createView),
userInfo: nil,
repeats: true
)
}
@objc private func createView() {
let v = UIView(frame: CGRect(
x: self.view.bounds.width/2 - 50,
y: -100,
width: 100,
height: 100
))
v.backgroundColor = UIColor.red
v.transform = CGAffineTransform(
rotationAngle: CGFloat(Double(arc4random_uniform(360)) * M_PI/180)
)
self.view.addSubview(v)
UIView.animate(withDuration: 5, delay: 0, options: [.curveLinear], animations: {
v.frame.origin.y = self.view.bounds.height
}, completion: {
_ in
v.removeFromSuperview()
})
print(self.view.subviews.count)
}
}
완벽하게 작동했습니다. 정말 고맙습니다! –
걱정할 필요가 없습니다. 보기의 프레임을 볼 때 이상한 결과가 나거나 프레임을 변경하면 이상한 결과가 발생하는 경우 비정상 변환이 있는지 확인하십시오. 나는이 규칙을 잊어 버렸고, 무엇이 잘못되었는지를 알아 내려고 시간을 낭비했다. –