Tôi đang viết ứng dụng máy ảnh và gặp sự cố khi hiển thị hình vuông lấy nét khi người dùng chạm vào màn hình.Làm cách nào để hủy hoạt ảnh trước khi hoạt ảnh mới được kích hoạt?
Mã của tôi là (trong nhanh chóng):
self.focusView.center = sender.locationInView(self.cameraWrapper)
self.focusView.transform = CGAffineTransformMakeScale(2, 2)
self.focusView.hidden = false
UIView.animateWithDuration(0.5, animations: { [unowned self]() -> Void in
self.focusView.transform = CGAffineTransformIdentity
}, completion: { (finished) -> Void in
UIView.animateWithDuration(0.5, delay: 1.0, options: nil, animations: {() -> Void in
self.focusView.alpha = 0.0
}, completion: { (finished) -> Void in
self.focusView.hidden = true
self.focusView.alpha = 1.0
})
})
Tuy nhiên, nếu sử dụng chạm vào màn hình liên tục khi hoạt hình trước đó không hoàn thành, các phim hoạt hình cũ và mới sẽ trộn lên và quan điểm tập trung sẽ có biểu hiện lạ , ví dụ, nó sẽ biến mất rất nhanh.
Mọi người có thể cho tôi biết cách hủy hoạt ảnh trước đó, đặc biệt là khối hoàn thành trước đó không?
cố gắng sử dụng biến BOOL thành viên và làm cho nó có trong hình động dựa trên có và không cố gắng để động nó – Tendulkar
Hãy thử UIView.setAnimationBeginsFromCurrentState (true); trước khi bắt đầu hoạt hình – Jageen
có thể trùng lặp của [Làm cách nào để hủy hoạt ảnh dựa trên khối UIView?] (http://stackoverflow.com/questions/9569943/how-to-cancel-uiview-block-based-animation) –