2014-09-24 5 views
4

iOS 7과 8을 지원하는 프로젝트에서 작업 중입니다. 스토리 보드는 Xcode 5에서 처음 생성되었습니다. Xcode 6으로 업데이트되었으며 크기 클래스를 사용하기 시작했습니다.Xcode 6 무작위로 스토리 보드를 크기에 맞게 바꿀 수 있습니까?

그러나 지금은 iPhone 만 사용할 수 있으므로 wCompact hRegular로 배치하고 있습니다. 문제는 입니다. Xcode는 스토리 보드를 임의로 (으)로 무작위로 되돌리려합니다. 그것은 절대적으로 정신 나간다. 이 동작을 사용하지 않도록 설정할 설정이나 무언가가 있습니까?

+0

나는 그런 행동을 한 번도 본 적이 없지만 bugreport.apple.com에 버그 보고서를 제출합니다. 이는 예상 된 동작이 아닙니다. 또한 Xcode 6.1.1 GM 빌드와 6.2 베타 버전을 사용해 이미 버그를 해결했는지, 이미 알고 있었는지 확인하십시오. – Joey

답변

0

개인적으로 우리는 크기 클래스와 자동 레이아웃을 싫어합니다. 때로는 이러한 기능이 실제로 우리를 미치게하기 때문에 프로젝트가 iPhone 용이므로 크기 클래스를 비활성화하고 XCode의 관리자 패널에서 크기 자동 분류를 사용하고 몇 가지 수동 설정을 viewDidLoad (필요한 경우) : UIScreen을 사용하여 다음과 같이 입력하십시오.

if([[UIScreen mainScreen] bounds].size.height == 568) { 
    //iPhone 5 

} else if([[UIScreen mainScreen] bounds].size.height == 480) { 
    //iPhone 4 

} else if([[UIScreen mainScreen] bounds].size.width == 375) { 
    //iPhone 6 

} else if([[UIScreen mainScreen] bounds].size.width == 414) { 
    //iPhone 6+ 

} 

희망이 있습니다.

+0

이것은 정말 끔찍한 생각입니다. 마술 숫자를 사용하지 않아야합니다. – Joey

+0

글쎄, 우리는 항상 그 코드를 사용하기 때문에 모든 뷰가 우리가 원하는대로 머무를 수있게 해준다. – cubycode

+0

절대적으로 그렇게해야하고, 때로는해야하지만 희소해야한다. 적어도 숫자의 범위를 사용한다. , 그것을 하나의 크기로 고정하는 대신에'else' 문을 포함합니다. 이 코드를있는 그대로 사용하면 새로운 화면 크기가 해제 될 때 문제가 발생합니다. 예를 들어,'width <420' 인 경우. 또한'height'와'width'에 대해 일관성없이 테스트하는 것은 현명하지 않습니다. – Joey

관련 문제