Tôi có UIView tùy chỉnh để hiển thị hình ảnh xếp kề.UIView mở rộng trong khi hoạt ảnh
- (void)drawRect:(CGRect)rect
{
...
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToRect(context,
CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));
CGContextDrawTiledImage(context, imageRect, imageRef);
...
}
Bây giờ tôi đang cố gắng tạo hoạt ảnh thay đổi kích thước của chế độ xem đó.
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
// change frame of view
[UIView commitAnimations];
Điều tôi mong đợi đối với khu vực lát gạch chỉ để phát triển, khiến kích thước ô không đổi. Điều gì xảy ra thay vào đó là trong khi khu vực phát triển nội dung gốc của chế độ xem được chia tỷ lệ thành kích thước mới. Ít nhất là trong thời gian hoạt hình. Vì vậy, ở đầu và cuối của tất cả các hình ảnh động là tốt. Trong quá trình hoạt hình, các viên gạch bị bóp méo.
Tại sao CA cố gắng mở rộng? Làm thế nào tôi có thể ngăn chặn nó làm như vậy? Tôi đã bỏ lỡ cái gì?
Có vẻ như nó liên quan đến contentMode của chế độ xem. Nhưng thiết lập nó để UIViewContentModeLeft không thực sự giải quyết nó hoặc. Nó sau đó không còn quy mô nhưng bật lên đến kích thước khung hình mới ngay lập tức. Thiết lập nó để UIViewContentModeRedraw dường như không được gọi ra để drawRect ở tất cả trong quá trình hoạt hình. – tcurdt