2014-01-22 3 views
1

안녕하세요. 전 새로운 iOS 개발입니다. ios5뿐만 아니라 ios7에서도 실행되는 앱을 만들고 있습니다. 내 문제는 ios5에 대한 이미지 프레임을 시뮬레이터에서 완벽하게 표시 할 때 설정하지만 장치에서 실행하면 Y 좌표가 자동으로 증가하고 이미지 changes.please의 위치가 왜 이런 일이 발생하는지 그리고 어떻게 표시되는지를 알려줍니다. 단일 응용 프로그램에서 여러 장치의 프레임을 설정하는 방법ios에서 여러 장치의 프레임을 설정하는 방법은 무엇입니까?

+0

변경 이유는 iOS가 아니기 때문에 차이를 만드는 것은 iPhone <5와 iPhone5입니다. 동일한 위치에서보기를 원할 경우 자동 레이아웃을 제거하십시오. –

+2

iOS 5 또는 iOS 6을 지원하는 이유는 무엇입니까? iOS 7이 모든 기기의 약 80 %를 차지하는 것을 고려하면, 구형 기기를 특별히 타겟팅하지 않는 이상 iOS 7 만 사용하면 많은 번거 로움을 덜 수 있습니다. – CaptainRedmuff

답변

0
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 6 
} 
else if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1){ 
    //IOS 7 
} 

이 코드는 여러분에게 ios 버전을 제공합니다. 그 도움이되는지 알려주세요 .. :)

편집 :

은 화면의 크기가 아래 코드를 시도 얻고 싶다면 :

CGRect screenRect = [[UIScreen mainScreen] bounds]; 
if (screenRect.size.height == 568) { 
    //Its IPhone 5 
} 
else if (screenRect.size.height == 480){ 
    //Its below iPhone 5 
} 
+0

실행중인 iOS의 버전을 확인하기 위해'systemVersion'을 사용해서는 안됩니다. 하지만 기초 버전을 확인해야합니다 :'if (floor (NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1)' – rckoenes

+0

@rckoenes systemVersion에 나쁜 영향이 있습니까 ?? 나는 모른다. 내가 그것에 대해 알게되면, 나는 나의 대답을 편집 할 것이다. – Rashad

+0

음 'systemVersion'은 단지 여러분이 float으로 형변환하는 문자열입니다. 비교. 'foundationVersionNumber'는 언더 레이 아웃 SDK의 번호로 말하며 작동하는 변경 사항을 식별하는 데 사용됩니다. 애플은'foundationVersionNumber'를 사용하여 iOS 버전을 검색 할 것을 제안한다. 예를 들어 Apple TV는 systemVersion이 iOS 버전 번호와 다르지만 기초 번호를 구성하지 않습니다. – rckoenes

3

당신은 확인하지한다 장치 또는 iOS 모델을 선택합니다. 자동 레이아웃 또는 UIView 자동 크기 조정 마스크를 사용해야합니다. 이러한 주제에 대한 다양한 WWDC 비디오가 있습니다.

관련 문제