2010-06-30 7 views

답변

1

예, 가능합니다. 이것은 1 초 동안 200 X (200)의 경계에 경계 전류 년대

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1.0f]; 
[[self view] setBounds:CGRectMake(0.0f, 0.0f, 200.0f, 200.0f)]; 
[UIView commitAnimations]; 

은 뷰 컨트롤러의 뷰를 애니메이션 것이다. 원점은 바운드 직사각형의 크기만큼 변경되지 않습니다. 이것은 암묵적인 애니메이션입니다. 보다 복잡한 애니메이션을 원한다면 CABasicAnimation을 사용하고 명시 적으로 애니메이션을 적용하십시오.

+0

감사합니다. 이것이 내가 원하는 것입니다 : imagesize가 300 x 300이라고 상상해보십시오. 이미지 크기를 동일하게 유지하고 바운드 영역에 애니메이션을 적용하여 이미지의 100 x 100 특정 지점에 초점을 맞 춥니 다. Google 검색 및 프레임과 범위에 대해 혼란스러운 종류의 문서를 살펴 봅니다. – sooon

+0

위치와 범위를 변경하려면 -setCenter : 및 -setBounds :를 각각 사용하여 애니메이션을 적용하거나 -setFrame을 호출하여 애니메이션을 적용하여 둘 다 에니메이트 할 수 있습니다. 당신이 무엇을 원하는지는 명확하지 않습니다. 이미지를 오버레이하는 레이어가있는 경우 설명하는대로 해당 레이어에 애니메이션을 적용하여 집중할 수 있습니다. 이 경우에도 포커스 레이어가 -setMasksToBounds :를 YES로 설정했는지 확인해야합니다. –

+0

@MattLong : 내 질문에 저를 도울 수 있습니까?> http://stackoverflow.com/questions/8353284/animate-image-inside-a-smaller-frame-in-ios? 그것은 서풍이 찾고있는 것과 비슷합니다. 감사. – neebz

0

레이어 자체가 크기와 위치를 유지하고있어 레이어의 이미지에서 보이는 부분에 애니메이션을 적용하려고합니까?

그게 바로 CAScrollLayer입니다. 현재 레이어 대신 CAScrollLayer을 사용하고 보조 레이어로 이미지 렌더링 레이어를 CAScrollLayer에 추가하십시오. 그런 다음 하위 레이어의 transform 속성을 사용하여 해당 효과를 얻을 수 있습니다.