지금은 일련의 뷰를 사용하여 UIScrollView를 채우고 있습니다. UIScrollView를 회전식 슬라이드 쇼처럼 보이게하려면 뷰를 변형해야합니다. 즉 사용자가 스크롤 할 때 원과 같을 필요가 있습니다. 전에 이런 식으로 한 적이 전혀 없지만 CoreAnimation이 문제가 아니며 OpenGL을 사용해야한다고 가정합니다. 이것이 CoreAnimation 또는 Quartz에서 가능하다면 뷰를 왜곡하는 방법에 대한 샘플이 필요하며 나머지는 직접 풀어 낼 수 있지만 OpenGL에 익숙하지는 않습니다. 내 경험에회전식 효과를 위해 CoreAnimation 또는 OpenGL을 사용하여 뷰를 커브/뒤틀림
답변
, 값이 바로 얻을 조금 까다 롭습니다. 뷰 퍼스펙티브를 제공하는 방법은 레이어 변환을 조작하는 것입니다. 나는 비슷한 효과를 위해 transfor을 달성하기 위해 다음과 같은 방법을 사용했다 : 이것은 "플립 페이지"애니메이션을 만들기 위해 이루어졌다
-(CATransform3D)makeTransformForAngle:(CGFloat)angle from:(CATransform3D)start{
CATransform3D transform = start;
// the following two lines are the key to achieve the perspective effect
CATransform3D persp = CATransform3DIdentity;
persp.m34 = 1.0/-1000;
transform = CATransform3DConcat(transform, persp);
transform = CATransform3DRotate(transform,angle, 0.0, 1.0, 0.0);
return transform;
}
, 당신이 적응해야 할 수 있도록. 이를 사용하려면 다음을 수행하십시오.
flip_page.layer.transform = [self makeTransformForAngle:angle from:CATransform3DIdentity];
flip_page는 UIView입니다. 건배!
고마워요! 내 주요 문제는 위와 같이 개별 견해를 왜곡하는 것입니다. 이 일에 대해 어떻게 알아요? –
알겠습니다. 물론 선형 변환만으로는 충분하지 않습니다. OpenGL에서 메쉬를 만들고 텍스처를 두드리는 것이 확실합니다. 그러나 그것은 과잉처럼 보인다. 나는이 질문이 영리한 대답이되기를 바란다;) – fsaint
이것은 내가 필요로하는 관점을 개별적인 관점에 추가 할 수있게 해준다. 그러나 그들은 또한 구부러져 야합니다. –
뷰를 왜곡하려면 OpenGL이 필요하거나 Core Animation의 CAShapLayer를 사용하면이 곡선을 포함 할 수있는 베 지어 경로를 지정할 수 있습니다. 그러나 당신이보고있는이 커브는 단지 착시 일 가능성이 있음을 명심하십시오 (위의 이미지에서는 실제 커브처럼 보입니다). 올바른 y 축 회전을 가진 사각형이 충분한 행렬을 이루면 직선적 인 Core Animation으로 원하는 효과를 얻을 수 있다고 생각합니다. 몇 년 전 Apple이 제공 한 Core Animation 데모에서 어떻게 구현되는지는 확실합니다.
내가보기의 레이어의 변형 조금 주변에 엉망이 함께했다 :
- (IBAction)sliderDidChange:(id)sender
{
CGFloat value = [(UISlider*)sender value];
CGFloat xOff = value - 0.5;
CATransform3D trans = CATransform3DIdentity;
trans.m34 = 1.0f/-1000.0f;
trans = CATransform3DRotate(trans, degreesToRadians(xOff * -25.0f), 0.0f, 1.0f, 0.0f);
trans = CATransform3DTranslate(trans, 0.0f, 0.0f, 900.0f * fabs(xOff));
[[frameView layer] setTransform:trans];
CGPoint center= [frameView center];
[frameView setCenter:CGPointMake(1024.0 * value, center.y)];
}
내가 함께 a demo project을 던져 그 방법을 보여줍니다 여기에 프리젠 테이션에서 동영상의 스크린 샷입니다 회전은 슬라이더에 대한 응답으로 작동합니다. 스크롤 뷰를 사용하지 않으므로이를 적용해야하지만, 현재 스크롤 오프셋을 추적하고 적절하게 변환을 적용 할 수 있다고 생각합니다. 그것이 도움이되는지 확실하지 않지만 거기에 있습니다.
- 1. OpenGL을 사용하여 어안 렌즈 효과를 만드는 방법은 무엇입니까?
- 2. 애니메이션 효과를 추가하여 뷰를 여는 방법은 무엇입니까?
- 3. Windows Phone 7에서 이미지로 무한 회전식 효과를 만드는 방법
- 4. OpenGL을
- 5. jQuery주기를 사용하여 페이지 매김 회전식 메뉴 만들기?
- 6. 큰 창으로 CoreAnimation 저키
- 7. openGl을 사용하여 스크롤
- 8. VRML 또는 OpenGL을 학습하고 계십니까?
- 9. coreanimation 애니메이션 종료시기 알아보기
- 10. CoreAnimation (iPhone의 경우)을 사용하여 잔디를 애니메이트하십시오.
- 11. OpenGL을
- 12. iPad의 3D 회전식 효과
- 13. CoreAnimation stack crazy
- 14. OpenGL을
- 15. CoreAnimation 컴포지션 모델을 사용하여 CGContext에 UIView 계층을 렌더링하는 방법
- 16. OpenGL을 C#에서 Tao.OpenGL을 사용하여
- 17. OpenGL을 사용하여 iPad에서 그림 그리기
- 18. 회전식 너비 문제
- 19. CoreAnimation 기술보다 NSViewAnimation을 사용하는 이유는 무엇입니까?
- 20. 보기 드루팔 (Drupal의 회전식 모듈)
- 21. OpenGL을 사용하여 OpenGL 2d보기로 소프트웨어 렌더링
- 22. 작업에 적합한 도구 : CoreAnimation, Cocoa Animation 또는 OpenGL ES?
- 23. OpenGL을 사용하여 코코아에서 NV12 텍스처를 표시하는 방법
- 24. CSS - 호버 효과를 위해 여러 클래스 사용
- 25. OpenGL을 사용하여 이미지 바이트 배열 읽기
- 26. OpenGL을 : GL_DEPTH_COMPONENT24은
- 27. 코어 그래픽을 사용하여 애니메이션 또는 효과를 렌더링하는 방법
- 28. OpenGL을 사용하여 정사각형 격자에 텍스처를 적용하는 방법
- 29. CoreAnimation setFrameCenterRotation이 올바르게 애니메이션되지 않습니다.
- 30. 이상한 오류 : -CoreAnimation : 예외 예외 :
100 % 확신 할 수는 없지만,보기의 레이어 속성에 CATransform3D를 적용 할 수 있다고 생각합니다. – jessecurry
그래, 나는 이것에 대해 조금 읽었지 만 나는 그걸 사용 해본 적이 한번도 없다. 샘플을 아십니까? –