2011-11-13 2 views
0

가능한 한 적은 작업으로 iPhone 앱을 iPad로 이식하려고하는데 마지막 지점이 하나 남아 있습니다.유니버셜 앱의 .XIB에있는 UIView는 항상 iPhone UI 크기를보고합니다.

화면 맨 아래에 사용자 정의 UI 요소가 있습니다. UI 요소는 UIView의 하위 클래스이며 일부 클라이언트 메서드에 대한 위임 메서드 및 사용자 지정 그림이 필요합니다. UIView에는 여러 개의 UIButton 객체가 동일하게 배치되어 있습니다.

제 질문은 이러한 프로그래밍 방식으로 생성 된 UIButton을 중앙에 두도록하는 방법입니다. CustomNavBar 하위 클래스의 UIView가 들어있는 중앙 .xib 파일이 있습니다. CustomNavBar 클래스 내에서 나는 다음을 수행하려고 노력 해요 :

self.frame.size... 

또는

self.bounds.size... 

또는

CGRect rect = [[UIScreen mainScreen]bounds]; 
    rect.origin.size... 

하지만 수익의 모든

표준 아이폰 크기입니다. .XIB 파일에 포함 된 다른 개체에 대한 자동 크기 조정을 모두 설정했지만 UI 측면이 프로그래밍 방식으로 만들어지는 인스턴스를 어떻게 처리해야하는지 짐작할 수는 없습니다.

희망 하시겠습니까?

답변

1

iPad 용 대체 xib를 사용할 수 있으므로 기본 iPad 크기입니다. iPhone 장치 제품군 용으로 만든 xib는 iPad에 잘 통합되지 않습니다.

NSString* xibName = @"myview.xib"; 
if ([[UIDevice currentDevice].model isEqualToString:@"iPad"]) 
{ 
    xibName = @"myview_iPad.xib"; 
} 

예를 들어 xib의 iPad 버전을 얻으려면이 코드를 사용하십시오. xib 이름을 사용하고 iPhone xib 이름 또는 iPad xib 이름 (현재 기기가 iPad 인 경우 _iPad를 추가)을 반환하는 매크로 (또는 함수)를 만들 수도 있습니다.

+0

응답 해 주셔서 감사합니다. 나는 이것이 해결책이 될까봐 걱정했다 - 나는 게으른 해결책을 기대하고 있었다! 다시 한번 감사드립니다. – JordanMazurke