2010-07-13 2 views
0

내 iPhone 개발이 한발 더 나아져서 UI를보고 있습니다. 우리는 갤러리 목록에서 이미지를 서로 드래그 앤 드롭하는 것과 같은 몇 가지 멋진 인터페이스 -y 기능을 고려하고 있습니다.라이브러리 구성 요소가있는 더 풍부한 iPhone 인터페이스?

기본 iPhone 인터페이스의 거리는 얼마나됩니까? 대부분의 사람들은 자신 만의 인터페이스와 코드를 작성합니까? 그렇다면 기본은 무엇입니까? CoreGraphics? OpenGL?

나는 바퀴를 재발 명하고 싶지 않지만 누군가가 이미 작업을 끝낸 경우 지나치게 복잡한 옵션을 사용하고 싶지 않습니다.

답변

0

코코아 기반 인터페이스에는 몇 가지 계층이 있습니다. 일반적으로 프레젠테이션 및 성능 요구 사항을 충족하는 가장 높은 추상화 수준에서 작업하는 것이 좋습니다.

Interface Builder 또는 코드를 사용하여 배치 할 수있는 기본 UIKit 요소는 응용 프로그램의 인터페이스 내에서 가장 일반적인 경우를 처리하도록 설계되었습니다. 이러한 유형은 유형에 따라 어느 정도의 맞춤 설정을 제공하지만 일반적으로 볼 수있는 것은 사용자가 얻는 모든 것입니다. 애플은 휴먼 인터페이스 가이드 라인 (Human Interface Guidelines)에 위배되는 방식으로 애플 리케이션을 사용하는 것을 거부함으로써 애플이 애플 리케이션을 거부함으로써 이러한 스톡 요소에 대한 룩앤필을 유지하려고 시도한다.

다음 레벨은 맞춤 UIViews입니다. 이들은 -drawRect: 메서드 내에서 Quartz 드로잉을 사용하여 무엇이든 보이도록 만들 수 있습니다. –touchesBegan:withEvent:과 같은 메서드를 재정의하거나 새 UIGestureRecognizers를 사용하여 직접 터치 처리를 수행 할 수 있습니다. 여기에서 할 수있는 커스터마이징 레벨을 감안할 때, 이것은 대부분의 사람들이 인터페이스를 조정할 때 멈추는 곳입니다.

코어 애니메이션 레이어 및 애니메이션을 사용하여 이보다 조금 더 낮출 수 있습니다. iPhone에서 UIView 대신 CALayers를 사용하여 성능면에서 많은 이득을 얻지는 않지만 Mac 및 iPhone에서 동일한 코드를 사용하는 시각적 항목을 만들려면 유용 할 수 있습니다. 선형 적으로 두 상태 사이에서 뷰를 애니메이트하는 것 이상을 수행하려는 경우 사용자 지정 애니메이션이 필요할 수 있습니다. Core Animation을 사용하여 제한된 3D 작업을 할 수도 있습니다.

마지막으로 완전한 3-D 장면을 표시하고 실제로 고성능 그래픽 디스플레이를위한 OpenGL ES가 있습니다. 이것은 iPhone 디스플레이 시스템을 다룰 때 얻을 수있는 금속에 가깝고 작성해야하는 코드의 복잡성과 복잡성 측면에서 볼 수 있습니다. 복잡한 3-D 작업의 경우이 작업을 수행해야하지만 2-D 및 심지어 3-D의 경우에도 코드를 저장할 수 있기 때문에 먼저 Core Animation을 찾는 것이 좋습니다. 성능이 용납 될 수 없다면 OpenGL ES로 가야합니다.

이제 이러한 기술 중 하나를 사용하여 인터페이스의 일부로 작업해야한다고해서 다른 인터페이스와 공존 할 수 없다는 것을 의미하지는 않습니다. UIView는 Core Animation 레이어에 의해 뒷받침되며 OpenGL ES도 뷰에 배치 할 수있는 CALayer로 렌더링됩니다. 다시 말하지만, 인터페이스의 해당 부분에 적합한 가장 높은 수준의 추상화를 사용하십시오.

+0

굉장하고 상세합니다. 고마워. – mtrc

관련 문제