2014-09-02 2 views
1

세로 방향과 가로 방향을 모두 지원해야하는 응용 프로그램을 만들고 있습니다. 보기에 컨트롤을 다시 정렬하기 위해 자동 레이아웃을 사용하는 데는 문제가 없지만 자동 레이아웃에서는 할 수없는 것이 있습니다. 세로보기에서 서로 아래에 두 개의보기가 있고 가로보기에서 서로 옆에 있어야합니다. 오른쪽 X 위치에서 밑면보기를 이동할 수는 있지만 여전히 최상위보기 아래에 있습니다. Xcode 5에서 장치 회전시 요소의 위치를 ​​변경하는 방법은 무엇입니까?

http://www.hesamstore.ir/Orient.png

나는이 어떻게 할 수있는

:이 그림은 내가 수행 할 작업을 설명합니다?

읽어 주셔서 감사합니다.

답변

0

모든 IBOutlets에 제약 조건을 추가 ... 코드에이 방법을 구현합니다.

제약 조건 - 1. 높이, 너비, 후행 및 앞뒤로 계산하여 해결할 수 있습니다. 정확한 비율을 원하면 두 개의 콘센트를 선택하고 비율로 수평 구속 조건을 추가하십시오.

또한 레이블과 해당 스위치를 선택하고 가로 간격을 추가하여 등가로 만듭니다.

그래야합니다.

+0

예 autolayout, 라고합니다. autolayout이 ios6에서 나온 후에 프레임에 대한 코드를 쓸 수 없습니다 (생각합니다). :) –

+0

멋진 솔루션. 그러나 몇 가지 질문이 있습니다. 나는 첫 번째 쌍의 옵션에 수퍼보기에 앞장 선 공간을 추가했다. 그들은 왼쪽에 붙어 있습니다. 그리고 4 초의 것들에 후행 스페이스 슈퍼 뷰를 추가합니다. 그들은 오른쪽에 충실하지만 그들은 여전히 ​​첫 번째 세트 옵션 아래에 있습니다. 어떻게해야할까요? –

+0

양쪽에서 하나의 라벨 + 스위치 세트에만 전체 제약 세트를 추가하십시오. 아래 세트는 아래의 세트와 수직 간격의 모든 제약 조건을 가진 셀을 선택하고 그 아래의 것과 동일하게 따르십시오. 그것의 방정식과 마찬가지로, 당신은 1에 맞도록 설정해야하고 올바른 것을 1에 연결하면 올바르게됩니다. 그러면 다음과 같이 진행하십시오 : 하지만 앱의 레이아웃에 따라 다릅니다. –

0

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 

    BOOL isPortrait = UIDeviceOrientationIsPortrait(self.interfaceOrientation); 
    if(isPortrait == NO) 
    { 
     // this is landScape mode.... 
     // here give the frames that you want for your controls... 
    } 
    if(isPortrait == YES) 
    { 
     // this is portrait mode.... 
     // here give the frames that you want for your controls... 
    } 

} 
관련 문제