Tôi đang gặp vấn đề về quy mô và bản dịch CGAffineTransform khi tôi đặt biến đổi trong khối hoạt ảnh trên chế độ xem đã có biến đổi chế độ xem nhảy một chút trước khi hoạt ảnh.CGAffineTransform scale và translation - nhảy trước khi hoạt hình
Ví dụ:
// somewhere in view did load or during initialization
var view = UIView()
view.frame = CGRectMake(0,0,100,100)
var scale = CGAffineTransformMakeScale(0.8,0.8)
var translation = CGAffineTransformMakeTranslation(100,100)
var concat = CGAffineTransformConcat(translation, scale)
view.transform = transform
// called sometime later
func buttonPressed() {
var secondScale = CGAffineTransformMakeScale(0.6,0.6)
var secondTranslation = CGAffineTransformMakeTranslation(150,300)
var secondConcat = CGAffineTransformConcat(secondTranslation, secondScale)
UIView.animateWithDuration(0.5, animations: {() -> Void in
view.transform = secondConcat
})
}
Bây giờ khi buttonPressed() được gọi là điểm nhảy đến phía trên bên trái khoảng 10 pixel trước khi bắt đầu chuyển động. Tôi chỉ chứng kiến vấn đề này với một biến đổi concat, chỉ sử dụng một biến đổi dịch hoạt động tốt.
Chỉnh sửa: Kể từ khi tôi đã thực hiện rất nhiều nghiên cứu về vấn đề tôi nghĩ rằng tôi nên đề cập rằng vấn đề này xuất hiện bất kể có hay không bố trí tự động được bật
Nếu bạn sử dụng 'CGAffineTransformTranslate (secondScale, 150,300)' thì sao? –
Kết quả chính xác là – matteok
"Nhảy một chút" nghĩa là gì? Liệu nó có trở lại biến đổi nhận dạng? Liệu nó animate để 'secondConcat' từ nhảy hoặc nhảy nó, trở về concat, _then_ animate để' secondConcat'? –