2017-04-24 13 views
0

안녕하세요. 동료 소프트웨어 엔지니어, 저는 큰 도움이 필요합니다. 미리 도움을 청하십시오! 여기 자동 크기 조정 + 회전 변환 ==> 작동시키기위한 가장 우아한 해결책은 무엇입니까?

내 문제입니다 :

VIEW의 B 내가 VIEW B가 VIEW A를 함께 크기를 조정할 같이

VIEW B는 모든 옵션 ([.flexibleWidth, .flexibleHeight, .flexibleLeftMargin, .flexibleRightMargin, .flexibleTopMargin, .flexibleBottomMargin])로-자동 크기 조정했다 VIEW에 포함되어 VIEW A의 경우 높이 변화.

enter image description here enter image description here

는 지금까지 그것은 ... 작동 VIEW B는 이동 정확하게 크기를 조정하지만 내가보기에 B에 적용되는 변환 회전이 있고, 때 나는 VIEW A의 같은 높이 변화를 시도

여기

이 일어나는 것이다 :

enter image description here enter image description here

크기를 변경할 때 VIEW A에서 각보기의 프레임을 수동으로 설정하도록 제안되었습니다. 하지만 찾으 매우 VIEW A는 그것이 autoresizingMask에 대한 예상되는 동작

+1

제목에 대문자를 사용하지 마십시오. –

답변

0

VIEW의 B와 같은 견해를 많이 포함 할 수 있다는 사실을 고려 "맥 Gyverish". 이 문제를 해결하려면 Autolayout을 사용하십시오. 그것은 당신이 설명하는 일반적인 경우에 완벽하게 작동하는 일반적인 방법입니다.

AutolayoutautoresizingMask도 동일하지 않습니다.

제약 :

enter image description here

+0

답변 해 주셔서 감사합니다. 너비와 높이를 제약 조건으로 설정하면 뷰의 부모 뷰에서 높이가 변경되지 않습니다. –

0

사용 자동 레이아웃과 모두 크기 조정. 시도 할 수있는 방법은 다음과 같습니다.

1 단계 : 자동 레이아웃 수행. (빨간색보기의 위치에 따라 다릅니다. 내 오른쪽 및 최고 제한 조건입니다.)

2 단계 : 자동 크기 조정을 수행하십시오.

빨간색보기를 마우스 오른쪽 버튼으로 클릭하고 커서를 기본보기로 놓은 다음 동일한 폭과 같은 높이를 선택하십시오. enter image description here

및 속성 검사기에서 승수를 넣어 크기를 변경하십시오. enter image description here

가로 세로 비율 값이 0.6 인 redView의 너비가 변경되었습니다.

이 기술을 사용하면 장치 크기에 따라 redView를 쉽게 조정할 수 있습니다.

그냥 또한 당신은 항상 그냥 우리가 당신이 될 this.May 필요로 할 이유 몇 가지 유용한 스택 답이 있습니다이

-(void)rotate { 
    [self.view layoutIfNeeded]; 
    [UIView animateWithDuration:0.3 animations:^{ 
     self.redView.transform = CGAffineTransformMakeRotation(M_PI_2); 
     [self.view layoutIfNeeded]; 

    }]; 
    self.redView.transform = CGAffineTransformIdentity; 
} 

처럼

[self.view layoutIfNeeded]; 

을 사용하여 제약 조건 변화 를 사용하여 애니메이션을 적용 할 경우 이유를 알고 싶다면 Google에 알려주세요. :)