2014-10-20 4 views
5

Xcode 6에서 매우 혼란 스럽습니다 (적어도 나에게) 주제 인 Size Classes에 대해 질문하고 싶습니다.이 모든 작동 방식을 완전히 이해하려고 노력했지만 아직도 나에게 분명하지 않다.Xcode 6 크기 클래스

Xcode 6과 새로운 iPhone이 출시되기 전에 모든 것이 매우 간단했습니다. To, Non Retina 및 Retina는 항상 동일한 해상도 320x480 (높이가있는 장치의 경우 568)으로 작업 할 수있게 해주는 디스플레이입니다. 표준 및 @ 2x 자산이 완벽한 의미를 갖습니다. 그러나 우리는 같은 비율 (거의 같은)의 큰 엉덩이 화면을 가지고 있지만 작업 영역은 더 이상 동일하지 않습니다.

크기 클래스는 하나의 스토리 보드에 모든 것을 적용 할 수 있도록 만들어졌습니다. 그러나 잠시 기다려주십시오. iPhone 6은 @ 2x 자산을 사용합니다. 제 이해에서,이 장치는 iPhone 5/5S보다 그래픽이 작아 보입니다. iPhone 6 Plus는 3x 애셋을 사용합니다. 다시 3 배가됩니다. 예를 들어 화면의 전체 너비와 관련하여 항상 특정 크기의 버튼을 만들 수없는 것처럼 보입니다. 물론 코드를 작성하지 않으면 크기 클래스를 쓸모 없게 만들 것입니다.

나는 올바르게 이해하고 있습니까? 아니면 뭔가 빠졌습니까? 여러분 모두가 어떻게 그것을 볼 수 있는지 듣는 것이 좋을 것입니다. 어쩌면 좋은 자습서를 아십니까? 나는 의심을 설명 할만한 것을 찾지 못했습니다.

미리 감사드립니다.

+0

알겠습니다. 그것이 내가해야만하는 일이다. 아이폰에 따라 코드를 통해 버튼을 수동으로 커/더 작게 만듭니다. iPhone 5/6 시뮬레이터에서 완벽하게 보였던 버튼이 iPhone 6 Plus에서 어려움을 겪었습니다. 그러므로 딜레마 –

+0

코멘트 주셔서 감사합니다, 샘. 정확한 크기와 간격이 그다지 중요하지 않으면 아이폰 6이 많은 문제가 될 것 같고 인터페이스 빌더에서 레이아웃을 만드는 현명한 방법이 없다. 안드로이드를 생각 나게 해요 :) –

답변

4

당신은 여기에 서로 다른 접근 방식의 조합을 사용하여 무슨 말을하는지 많은 수행 할 수 있습니다 예를 들어 (UI 구성에서 가장 큰 규모의 변화를 포함하는 다양한 유형의 장치에 대한

  1. 크기 클래스 , iPad와 iPhone의 차이점). 이 기능을 사용하여 사이드 바의 표시 여부를 변경할 수 있습니다.

  2. 개별 크기 클래스에 특정한 Autolayout 규칙. 레이아웃을 조정하기 위해 서로 다른 크기 클래스에 대해 서로 다른 자동 레이아웃 규칙을 추가 할 수 있습니다 (예 : 서로 다른 크기 클래스에 대해 서로 다른 Autolayout 규칙을 가질 수 있으므로 가로 열 단추와 누적 열 단추간에 전환 할 수 있음)). 이 기술은 모든 크기 클래스에 대해 동일한 자동 레이아웃 규칙을 더 이상 사용할 필요가 없다는 것을 알게되면 매우 강력합니다.

  3. 자산 카탈로그는 지원되는 다른 해상도 등을 위해 사전 렌더링 된 그래픽을 자동으로 전환합니다. 또한 많은 구형 장치는 iOS 8을 실제로 지원하지 않기 때문에 광범위한 하위 호환성을 필요로하지 않는 이상 더 이상 저해상도 버전을 더 이상 포함 할 필요가 없습니다 (그렇게 할 경우 모든 크기 클래스 기능을 사용할 수있는 것은 아닙니다) 어쨌든). 방금 이전 버전의 사용자가 이전 버전의 앱을 다운로드 할 예정이므로 iOS 8 만 지원하는 새로운 버전의 앱을 만들었습니다.

  4. 크기 조정 가능 이미지 : 자동 테두리 맞춤 규칙에 따라 크기가 변경 될 수있는 UIButtons 등과 같은 항목에 적용될 때 이미지가 어떻게 늘어나는지 제어 할 수 있도록 이미지 내의 크기를 조정할 수있는 영역을 지정할 수 있습니다. (이것은 Android가 오래 동안 가지고 있었던 기능이므로 iOS를 환영합니다.) 이는 개별 이미지가 많지 않거나 크기를 정밀하게 제어하지 않고도 더 다양한 화면 크기로 멋지게 보이게 만들 수 있음을 의미합니다 UI 요소의

  5. 다른 방법으로는 얻을 수없는 것을 조정할 수있는 뷰 컨트롤러의 프로그래밍 코드입니다.이 장치는 크기 클래스와 어떤 정확한 레이아웃을 표시하는 동안 그레인 제어의 벌금을 부과 당신이 아주없는 것은 사실이지만

, 나는 당신이 생각 하듯이 진짜로 큰 문제로, 아니라는 것을 발견 크기 클래스를 사용하면보기 컨트롤러가 서로 다른 장치에 원활하게 적용될 수 있습니다. autolayout과 size 클래스의 조합은 특히 강력합니다. 그리고 그것은 실제로 잠재적으로 좋은 일입니다. 왜냐하면 애플이 다른 화면 크기로 나올 때마다 새로운 수동 설정을 의미하기 때문입니다. 지금은 변환하는 것이 약간의 고통이지만 장기적으로는 가치가있을 것입니다. 어떻게하면 일을 조금 다르게 설정하는지 생각해야합니다. 안드로이드와 같이 조금 더 많은 장치 화면 크기와 해상도로 오래 동안 싸워야했지만, 또한 모든 단일 물리적 장치를 정확하게 디자인 할 수없는 플랫폼의 자연스런 진화 유형입니다. 실용적인 문제입니다 (시뮬레이터에서 여전히 테스트해야합니다).

+0

안녕, 아주 좋은 점! 이 모든 것을 열거 해 주셔서 대단히 감사합니다! –

0

크기 클래스는 더 큰 화면 크기에만 적용되는 것은 아니며 완전히 다른 레이아웃을 위해 있습니다. iPhone과 마찬가지로 하나의 항목을 표시하고 더 자세한 정보를 보려면 다음 화면으로 이동하려면 살짝 누르십시오. 그러나 iPad에서는 두 화면을 동일한 화면에 표시합니다.

작은 조정의 경우 크기 클래스마다 다른 레이아웃의 자동 레이아웃을 사용하며 각 크기 클래스의 다양한 화면 크기는 자동 레이아웃에 의해 처리됩니다.