2013-06-03 5 views
2

여기 및 다른 사이트를 조사한 후 내 문제를 해결하는 데 도움이되는 답을 찾을 수 없거나 앞으로 나아갈 수 없습니다. 내 검색에서 올바른 용어를 사용하지 않았을 수 있습니다. 내가 찾은 정보는 iPhone 또는 iPad의 세로보기 대 가로보기의 자동 크기 조정에 중점을 두는 것으로 보이지만 3.5 및 4 폼 팩터 간의 수직 간격 재 지정에는 그다지 중요하지 않습니다.iPhone Xcode보기에서는 3.5 "에서 4"화면으로 서브보기의 수직 간격을 좁히지 않습니다.

iPhone Retina 3.5 폼 팩터 화면에 Xcode 4.6.2의보기 단일보기를 멋지게 배치했지만 Retina 4 폼 팩터를 적용하려면 클릭하면 아래쪽에 빈 공간이 있습니다. 비슷한 즐거운 레이아웃을 제공하기 위해 모든 뷰 항목이 수직으로 배치 될 것으로 기대했을 것입니다. 다른 제약 조건 설정을 시도해 보았습니다.보기 항목에 수직 간격을> =로 설정했습니다.

귀하의 도움에 감사드립니다.

각 폼 팩터의 스크린 샷을 게시하려고했지만 내 "평판"이 낮습니다.

답변

1

Storyboard/Xib의 인터페이스에서 사용자 인터페이스의 크기를 늘리고 두 개의 화살표가있는 사각형을 찾고 Autolayout, "스프링 및 스트럿"또는 프레임 및 CGRect 사용을 프로그래밍 방식으로 사용해야합니다. 여기에 이미지 설명이 있습니다. 1 ver there

0

답변은 자동 레이아웃 (iOS 6 이상)을 사용하는지 여부에 따라 다릅니다. 그렇지 않은 경우 자동 크기 조정 마스크 (IB의 자동 크기 조정, autoresizingMask이라고도 함, 프로그래밍 방식으로보기의 마스크를 조정할 때, "스프링 및 스트러트"라고도 함)를 조사하십시오.

autolayout을 사용하지 않는 경우 "자동 크기 조정"설정을 사용합니다.

autosizing

다양한 빨간 화살표를 클릭 주위 재생 : 예를 들어,이 저면이 자동으로 뷰의 높이 및 폭의 크기를 조정 상하 유지 좌우 마진 고정하는 것으로 설정 오른쪽에있는 패널에 I-beams을 추가하면 자동 크기 조정의 대상을 조정할 수 있습니다. 오른쪽의 작은 애니메이션 창이 3.5 인치 또는 4.0 인치 스크린을 기준으로 컨트롤이 크기를 조정하는 방법을 보여줍니다.

(위의 아이폰 OS 6)를 자동 레이아웃을 사용하는 경우, 당신은 그에 따라 수퍼에 제약을 설정 : 자동 레이아웃에 제약을 설정

autolayout

조금 당신이 그것을 처음 사용할 때 혼란이다, 하지만 Cocoa Auto Layout Guide으로 안내합니다. 멋진 WWDC 2012 비디오 리소스에 대한 링크도 있습니다.

0

더 나은 후반.

보기 사이의 세로 간격을 줄이는 문제에 대한 코드 방법을 발견했습니다.

#define IS_WIDESCREEN (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

//Shrink your constraints at run time!! 
if(!IS_WIDESCREEN) 
{ 
    for(NSLayoutConstraint *c in self.view.constraints) 
    { 
     if ((c.firstAttribute == NSLayoutAttributeTop && c.secondAttribute == NSLayoutAttributeBottom) || (c.firstAttribute == NSLayoutAttributeBottom && c.secondAttribute == NSLayoutAttributeTop)) 
     { 
      if(c.constant > 13) // -> this value is adjustable so that some spaces doesn't shrink too much 
      { 
       c.constant *= (3.5/4.0); 
      } 
     } 
    } 

    [self.view layoutIfNeeded]; 
} 

여전히 조정할 수 있지만 제대로 작동합니다.

많은 투쟁 끝에 나에게 도움이 되었기를 바랍니다.