바둑판 식 이미지를 표시하는 사용자 정의 UIView가 있습니다.애니메이션 도중 UIView 크기 조절
- (void)drawRect:(CGRect)rect
{
...
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClipToRect(context,
CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));
CGContextDrawTiledImage(context, imageRect, imageRef);
...
}
이제 해당보기의 크기를 조정하려고합니다.
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
// change frame of view
[UIView commitAnimations];
타일 크기를 일정하게 유지하면서 타일 영역이 커지기를 기대합니다. 대신 영역이 커지는 동안 뷰의 원래 내용이 새 크기로 조정됩니다. 적어도 애니메이션 도중. 그래서 애니메이션의 시작과 끝 모두가 훌륭합니다. 애니메이션이 진행되는 동안 타일이 왜곡됩니다.
왜 CA가 확장하려고합니까? 그렇게하지 못하게하려면 어떻게해야합니까? 내가 놓친 게 무엇입니까?
보기의 contentMode와 관련이있는 것 같습니다. 그러나 그것을 UIViewContentModeLeft로 설정해도 실제로는 해결되지 않습니다. 더 이상 확장되지 않지만 곧 새로운 프레임 크기로 넘어갑니다. UIViewContentModeRedraw로 설정하면 애니메이션 중에 drawRect를 호출하지 않는 것 같습니다. – tcurdt