2012-09-05 6 views
0

iPhone 용 응용 프로그램을 만들었으므로 이제 iPad에서 전체 화면을 실행할 수 있도록 범용으로 만들려고합니다.iPhone 응용 프로그램에서 범용 응용 프로그램으로 변환

앱의 크기가 40MB이며 번들에 저장된 많은 이미지가 표시됩니다. 그것들은 iPhone 스크린을위한 크기입니다. 이것을 관리하는 가장 좋은 방법은 무엇입니까?

iPad 용으로 큰 이미지를 추가하면 앱이 매우 커집니다. iPad 콘텐츠 용 소스 폴더와 iPhone 콘텐츠 용 소스 폴더를 하나만 만들면 고객이 앱을 구입할 때 바로 다운로드 할 수 있습니까? 나는 그것에 대해 혼란스러워하며 내 탐색이 어떤 것도 이끌어 내지 못한다.

iPhone 및 iPad 스토리 보드 장면에도 동일한 클래스 (.h/.m)를 사용할 수 있음을 읽었습니다. 그렇다면 아이 패드와 다른 코드는 어떻게 관리 할 것인가? 그리고 어떤 종류의 코드가 될 수 있습니까? 나는 이것에 대해 다소 혼란 스럽습니다. 어떤 지침은 훌륭 할 것입니다.

Xcode 4를 스토리 보드와 함께 사용하며 앱은 매우 기본적이며 단추, 텍스트 필드, 이미지 및 레이블이있는 UITableViews 및 UIView와 일부 작업 시트가 있습니다. 데이터를 관리하기위한 .plist입니다.

지금까지 대상을 "유니버설"로 변경하고 iPad 용 스토리 보드 파일을 추가하고 시작하기 전에 몇 가지 기본 지침을 기다리고 있습니다. 당신이 내 문제를 이해하기를 바랍니다. 감사. :-)

답변

3

내가 아이 패드를위한 더 큰 이미지를 추가 할 경우, 응용 프로그램은 매우 큰

에게 그것은하지만, 당신은 번들에서 두 장치에 대한 모든 이미지를 포함 할 수 있습니다 관리의 단지 시도 할 것이다 것 그들을 왜곡하지 않고 최대한 압축하십시오.

참고 : 앱이 소비하는 저장 용량을 줄이기위한 정말 좋은 방법은 타일 배경 이미지를 사용할 때입니다. 특히 iPad Retina에서 특히 그렇습니다.

그렇다면 iPad 용으로 다른 코드는 무엇입니까? 을 어떻게 관리합니까? 그리고 어떤 종류의 코드가 될 수 있습니까? 나는 이것에 대해 다소 혼란 스럽다 , 약간의지도는 위대 할 것이다.

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { 
    //do something for iPad 
}else{ 
    //do something for iPhone/iPod Touch 
} 

이 당신이 단지 특정 장치 유형을 실행해야 코드를 분리 할 수있는 방법입니다. 특정 장치에서 사용할 수있는 개체 또는 개체의 차원 (예 : UIPopOverController)과 관련된 모든 작업에이 모든 것을 사용할 필요는 없습니다.

두 개의 사용자 인터페이스 관용구는 다음과 같습니다 UIUserInterfaceIdiomPad & UIUserInterfaceIdiomPhone

또한이 사용되어야한다 체계를 명명 이미지 :

  • ImageName.png - 아이폰/아이팟
  • 참고 ImageName의 경우는 @ 2x.png - iPhone/iPod Retina 용
  • 이미지 이름 ~ ipad.png - iPad 용
  • 이미지 이름 @ 2x ~ ipad .png - iPad의 경우 망막

이러한 이미지의 이름이 모두 정확하면 앱에서 이미지를 사용하는 방법이 크게 단순 해집니다.

UIImage *myImage = [UIImage imageNamed:@"ImageName"]; 

"이미지 이름"을 사용하기 만하면 iOS가 자동으로 기기 유형 및 해상도에 따라 올바른 이미지를 사용합니다.

+0

감사합니다. 그렇지만 이미 긴 코드 조각의 거의 모든 부분에 대해 if 문을 작성해야합니다. (iPad 용 다른 이미지를 표시하는 등). 방금 iPad 버전 용으로 새 프로젝트를 만들면 고객이 두 플랫폼 모두에서 앱을 구입하지 않고도 두 플랫폼 모두에서 응용 프로그램을 사용할 수 있습니까? – ingenspor

+1

if의 무리를 사용하지 않으려는 경우, 다른 장치에 대해 별도의 클래스를 만드는 것이 대안이지만 실제로 그렇게하는 것은 어렵습니다. 아니요, 두 개의 서로 다른 프로젝트를 만들고 업로드하는 경우 사용자는 두 개의 다른 앱을 구입해야하지만 유니버설 번들에서는 모든 기기에서 한 번 구매 한 다음 다시 다운로드하여 모든 기기에서 사용할 수 있습니다. –

+0

그래, 정말 고마워, 고마워! – ingenspor

관련 문제