2009-05-20 3 views
-2

아이폰 앱에 큰 도움이된다면 아이폰에 OS X Dock을 구현할 수있는 능력이라고 생각했습니다. 내 생각은 내 앱에서 선택할 수있는 5 가지 일반 메뉴를 갖고 메뉴를 가로 질러 손가락을 스 와이프하면 개별 아이콘이 확대되고 옵션을 선택하면 아이콘이 기다리는 동안 바운스됩니다.아이폰 앱에 OS X 독?

나는 개인적으로 내 애플 리케이션 에서이 사랑하는 것이지만, 그것을 할 수 있는지 궁금하네요. 너무 많은 CPU 집중력이 필요합니까? Core Graphics에서이 작업을 수행 할 수 있는지 또는 OpenGL ES가 필요하십니까?

감사합니다.

답변

1

코어 애니메이션 프레임 워크는 토론중인 애니메이션 (수신 거부, 스케일링)에 잘 작동합니다. 나는 그것이 OpenGL보다 훨씬 쉬울 것이라고 생각한다.

[UIView beginAnimations: @"iconBounce" context: NULL]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(iconBounceAnimationDidStop:finished:context:)]; 

CGRect iconPosition = iconImageView.frame; 
iconPosition.origin.y = 148; //bounce up 
iconImageView.frame = iconPosition; 

[UIView setAnimationDuration: 0.2]; 
[UIView commitAnimations]; 

선택기 iconBounceAnimationDidStop:finished:context: 애니메이션이 완료 될 때 호출되는 방법을 나타낸다 : 여기

0.2 초 지속 시간 동안 (148)을 y 좌표로 아이콘을 이동 애니메이션해야 코드이다. 이 메소드를 작성하여 바운스를 완료하기 위해 아이콘을 다시 시작 위치로 이동시킬 수 있습니다.

0

그런 종류의 그래픽 처리에는 OpenGL을 사용하고있을 것입니다. 텍스쳐 매핑/스케일링은 OpenGL에서 매우 효율적으로 수행됩니다.

귀하의 아이디어에 대한 문제는 이것이 "다른 앱을 여는 앱"이 될 것이라는 점입니다.

+0

다른 앱을 열지 않아도됩니다. 나는 내 애플 리케이션에 대한 옵션을 가지고있을거야. 전자 메일 아이콘, 더 많은 정보를 가져 오는 아이콘 등. – TheGambler

0

Core Animation과 완전히 호환되지만 사용자 상호 작용 문제가 발생합니다. Mac의 경우 마우스 드래그와 클릭 사이에는 구분이 있습니다. 그러나 아이폰에는 손가락 만 있고 우리는 직접적인 상호 작용에 익숙합니다. 즉, 위아래로 움직이며 선택됩니다. 이 다른 모드에서는 탭 드래그 리프트 (아이콘 확대)가 탭 리프트 (선택)와 다른 작업을 수행 할 수 있다고 말하는 것입니다. 또한 아이콘 스트립을 가로 질러 손가락을 드래그하면 현재 (확대 된) 아이콘이 항상 손가락 바로 아래에 표시되고 표시되지 않으므로 조정해야합니다.

실천 가능하지만 사용자 경험을 생각해 볼 수 있습니다. 멋지게 들리지만 내 생각에 그것은 마우스처럼 직접적인 상호 작용 환경에서 바로보고 모양을 느낄 수 있도록 많은 조정이 필요할 것입니다. 애플이 이미 그것을 시험해보고 그것을 반대하지 않는다면 놀랄 것이다.

3

5는 UITabBarController에 완벽하게 들어 맞는 정확한 아이콘 수이며, Apple iPhone Human Interface Guidelines를 준수하는보기를 전환하는 쉬운 방법을 제공하며, iPhone 사용자에게 매우 친숙합니다. 당신은 여전히 ​​당신을 정말로 느끼는 OS X 독처럼 보이는 뭔가를해야하는 경우

http://www.screentoaster.com/watch/stVUpUQEVLQVteRl1eXFxf/iphonedev_101_uitabbarcontroller

, 내가 코어를 사용하는 것이 좋습니다 것 :

는 여기에 UITabBarController가 포함 된 응용 프로그램을 만드는 방법을 보여주는 비디오입니다 생기.

사용자 정의보기를 만들고 초기화 코드에서 각 도크 아이콘에 CALayer를 추가하십시오. touchesMoved 이벤트를 구현하여 손가락 위치를 감지하고 아이콘 레이어의 경계 및 위치 속성을 수정하여 이동/크기 조정합니다. OS X에서 동작을 시도하고 사용하기 위해 사용하는 애니메이션 모드와 아이콘 크기를 조정하기위한 알고리즘을 미세 조정해야하지만 커서 (또는이 경우에는 손가락)로부터의 거리를 기반으로하는 선형 왜곡이라고 생각합니다.).

코드를 구현하여 아이콘을 기본 위치로 재설정하고 touchesEnded에서 아이콘에 대해 원하는 동작을 실행하십시오.

아이콘을 바운스하려면 kCAMediaTimingFunctionEaseInEaseOut 타이밍 기능이있는 CABasicAnimation을 사용하여 위치를 애니메이션으로 표시하고 반복 및 자동 되감기를 활성화 할 수 있습니다.