2015-01-18 5 views
3

자동 레이아웃 및 크기 클래스가없는 응용 프로그램에서 여러 xibs를 만들었습니다. 내가 실제 장치에서 응용 프로그램을 실행하면iPhone5 용으로 만든 XIB를 iPhone6 ​​및 iPhone6 ​​Plus와 함께 작동하도록 업데이트

그것은 iPhone6에 있지만 iPhone6 ​​플러스 뷰가 화면의 한쪽을 포옹에 잘 실행됩니다. 내 xibs 내장하는 방법에 대한 정보를 추가

enter image description here

: 모든 xibs에

요소 자동 크기 조정으로 사용하도록 설정되어 자동 크기 조정은 다음과 같이 설정되어 있도록 모든 객체 iOS가 < 7.0 인 iPhone에서 앱을 사용할 때 같은 위치에 머물러야합니다. 배경 이미지 (전체보기를 포함)가 상태 표시 줄 아래로 이동합니다. IOS7 이상의 상태 이미지는 상태 표시 줄 아래에 표시됩니다. 이 작업은 앱의 모든보기에서 수행됩니다.

문제는 XIB 모든 것을 망쳐 놨에 내가 자동 레이아웃과 크기 클래스를 포함, 시도 아무리입니다. 자동 레이아웃을 사용하도록 내보기를 변환 할 수있는 쉬운 방법이 있습니까? 예를 들어, iPhone4 해상도로 설계된 동일한보기를 iPhone6 ​​Plus 해상도에서 동일하게 표시되도록 변경할 수 있습니까? 자동 크기 조정이 설정된대로 유지되면 좋을 것입니다.

내가 몇 가지 기술을 사용하여 시도 및 제약하지만 이미지가 가끔 (가로 세로 비율을 유지하지 않음) 높이 만 증가 제안, 배경 이미지가 화면의 한쪽에 충실하고 라벨의 크기가 증가하지 않습니다. iPhone6 ​​및 6 Plus 해상도를위한 자산도 프로젝트에 추가되었습니다.

+3

필자는 제안 된 제약 기능을 사용 했었지만 대부분은 네가 원해. 일반적으로 자동 레이아웃을 사용하면보기를 중앙에 배치 할 것인지 또는보기를 수퍼 뷰 또는 인접보기로 가져갈 것인지 결정해야합니다. 많은 자습서가이를 설명하지만, ** 전반적으로 'spring/structs'에서 자동 레이아웃으로가는 진정한 지름길은 없을 것입니다. ** –

+0

iPhone4와 iPhone5 모두 동일한 너비를 사용했기 때문에 처리해야하는 애니메이션이 많이 있습니다. 적어도 xib 빌더에서 320 점, 점대 점 애니메이션을 사용할 수 있습니다. 이제 이러한 애니메이션은 새로운 iPhone6 ​​및 iPhone6 ​​plus에서 올바르게 작동하지 않습니다. 이후 작업 했으므로 일반 애니메이션을 만드는 방법에 대해 알고 싶습니다. (내가 한 것은 iPhone 3.5 인치 및 iPhone4 인치의 일반 용도였습니다.) @NateLee – ShayanK

+0

나는 강한 스프링과 스트럿츠 접근 방식에서 왔으며 자동 레이아웃을 습득하기가 어려웠습니다. 기본적으로 구속 조건은 스프링 및 스트럿과 동일하게 동작하며, 이제는 구속 조건이 할당되고 런타임 논리가 적용될 수 있습니다. 또 다른 팁은 더 높은 우선 순위를 가진 것과 동일한 일을하는 두 가지 제약 조건을 가질 수 있다는 것입니다. iPhone 6 및 6 plus 관련. 'Container에서 Horizontal Center'를 정렬하여 시작하려고 시도하고 최소한 너비를 낮게 설정하십시오. 그런 다음 필요에 따라 가장자리에 고정하십시오. 좀 더 도와 줄 수 있다면 알려주세요 – latenitecoder

답변

5

이 나는이 같은 문제를 해결하기 위해 필요한 한 때 내가 찾은 것입니다 : 당신이 자동 레이아웃을 사용하지 않으려면

1), 당신은 크기 조절 모드를 사용할 수 있습니다. 애플은 을 프로젝트 특성에 아이폰 6 해상도 시작 이미지를 설정 (그러나한다 , 그것을 사용하려면 아이폰 6에 대한 수정없이 아이폰 5 실행에 대한 이전의 모든 응용 프로그램을 만들기 위해 iOS8의에이 스마트 약간의 트릭을 추가 아이폰 5에 대한 이미지를 설정하면 아이폰 5 및 을 지원할 수 있으므로 시작 화면 파일을 비워 두어야합니다. 이렇게하면 iPhone 6/6 +에서 앱을 실행할 때 iOS에서 크기 조절 모드를 사용하고 모든 화면이 화면과 함께 아름답게 올바르게 조정됩니다. 새로운 화면은 iPhone 5 화면 비율을 유지하기 때문에 가능합니다. iOS는 기본적으로 올바른 화면 크기 비율로 pos/size를 곱하면됩니다. 아이폰 6 특정 해상도 이미지를 일부 XIBs 설정하면이 여전히 작동하는지 잘 모르겠습니다.

이 솔루션은 기본적으로 아이폰 6의 존재를 무시하고 기존의 장치에 프로그램을 유지하기 위해 chosing있는 것을 의미한다.

2) 당신은 정말, 당신은 두 가지 중 하나를 수행 할 수있다) 자동 크기 조절 모드를 포기하고 애플은 당신이 그것을 할 싶어 (아이폰 6에 대한 업데이트 된 앱을 확인하려면 :

  • 자동 레이아웃을 사용하십시오. 이것이 애플이 모든 사람들이 사용하기를 원하는 표준입니다. 처음에는 길들이기가 다소 어려울지라도, 실제로 그것에 익숙해 질 것입니다. 이제는 Autolayout을 사용하여 포기했습니다. iOS6 및 7에서 내 앱을 실행하려고 할 때 몇 가지 문제점을 발견 했으므로 (지금은 지원하지 않을 수 있습니다) (here에 대해 자세히 알아볼 수 있습니다).

  • iPhone 4/4s/iPod Touch 4 용으로 하나, iPhone 5/5/6/6 + 용으로 하나씩 XIBs을 사용하십시오. Apple이 설계 한 각 장치 종횡비에 대해 XIB를 유지할 것을 제안합니다. 가로 세로 비율은 주어진 XIB를 사용할 장치에 대해 동일하므로 자동 크기 조정 마스크를 사용하여 원하는대로보기를 확대 할 수 있습니다. 모든 것이 올바른 종횡비를 유지합니다.

나는 자동 레이아웃 내 문제는 iOS6의 실행과 7가 해결되지 않는 반면, 지금은 첫 번째 제안 (크기 조절 모드)를 사용하고 있습니다.

+0

이것은 나를 위해 트릭을했습니다. 나는 그가 약간의 수정을 원했던 클라이언트의 오래된 앱을 가지고 있었다. LaunchFile을 추가하지 않으면 Xibs가 iPhone6 ​​/ 6 +에서 제대로 확장되지만 LaunchFile을 추가하면 레이아웃이 수정됩니다. LaunchFile을 제거하는 것이 트릭을 만들었습니다! 고맙습니다 :) –

0

여러분은 자동 마스크를 사용하는 올바른 방법이라고 생각합니다. 어쩌면 일부 조정으로 문제를 해결할 수 있습니다.

첨부 한 사진은 개체의 자동 크기 조정 속성으로,이 설정의 동작 방식을 미리 볼 수 있습니다.

자동 수정 마스크를 설정하면 개체의 수퍼 뷰를 기준으로 개체의 거리를 수정하지만 너비를 유연하게 설정하지 않으면 (상자 안의 선택되지 않은 화살표) 시스템에서 개체 배치 사이에서 선택해야합니다 충돌을 해결하기 위해 컨테이너의 왼쪽 또는 오른쪽에 있고 객체가 왼쪽에 있습니다 (기본 동작 ... 작은 크기의 미리보기 자동 미리보기에서이를 확인할 수 있음).

너비를 유연하게 설정하고 수퍼 뷰의 설정이 너비 (너비와 유연한 너비)로 설정되어 있는지 확인하십시오.

iOS4 이후 프로젝트를 개발 중입니다. 아이폰과 아이 패드를 각 화면마다 하나의 xib 만 사용하여 자동 크기 조정 마스크 속성을 사용하여 뷰 축척 동작을 설정하므로 프로젝트를 개발할 수 있습니다.

동일한 레이아웃 인 경우 2 개의 xib를 사용하지 마십시오. 대부분의 경우에 매우 나쁜 습관입니다. 나중에 레이아웃을 업데이트하려고 할 때 스트레스를 받거나 버튼을 추가하는 것이 좋습니다.