2010-11-18 2 views
8

UIImageView가 포함 된 UIScrollView가 있습니다. iPhone이 회전 할 때 올바른 동작을 얻으려면 몇 가지 문제가 있습니다.iPhone 회전시 화면에 맞게 이미지 크기 조절

목표 : 나는 얻기 위해 노력하고 세로에서 가로로 갈 때 다음 여기에

_________ 
|AAAAAAA| 
|BBBBBBB|   _________________ 
|CCCCCCC|   |  AAAAAA  | 
|DDDDDDD| --> |  CCCCCC  | 
|EEEEEEE|   |  EEEEEE  | 
|FFFFFFF|   |_____GGGGGG_____| 
|GGGGGGG| 
--------- 

세로보기에서 전체 이미지

아이폰이 회전 할 때 가로보기에 맞게 조정됩니다. 그것은 또한 중심에있다. 또한 가로 세로 비율을 유지하려고합니다. 사용자 상호 작용도 켜져 있으며 사용자는 전체 화면을 사용하여 이미지를 이동/확대/축소 할 수 있어야합니다.

scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth | 
           UIViewAutoresizingFlexibleHeight);  

을하지만이 설정은 스케일을 보존하고 왼쪽 상단 모서리로부터의 오프셋 (offset) 다음

_________ 
|AAAAAAA| 
|BBBBBBB|   _________________ 
|CCCCCCC|   |AAAAAA   | 
|DDDDDDD| --> [BBBBBB   | 
|EEEEEEE|   [CCCCCC   | 
|FFFFFFF|   [DDDDDD__________| 
|GGGGGGG| 
--------- 

을 제공합니다

은 현재 내가하여있는 ScrollView에 autoresizingMask을 다음했다.

질문 : 적합한 autoresizingMask을 사용하여이 동작을 얻을 수 있습니까? 그렇지 않은 경우, 하나는 아마

scrollView.autoresizingMask = UIViewAutoresizingNone; 

을 설정하고 수동 회전에있는 UIScrollView에 대한 zoomScalecontentOffset을 설정해야합니다. 그러나 그것이 어디에서 끝나야합니까? 그 변화를 애니메이트하는 것은 어떨까요?

해결책 : 나는 아래의 코드를 사용하여 위의 동작있어보다 아주 약간 답을 수정하여 : 시도

imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | 
            UIViewAutoresizingFlexibleHeight); 

scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth 
            | UIViewAutoresizingFlexibleHeight); 

imageView.contentMode = UIViewContentModeScaleAspectFit; 
scrollView.contentMode = UIViewContentModeCenter; 

답변

3

이 :

scrollView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | 
          UIViewAutoresizingFlexibleHeight);  
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | 
          UIViewAutoresizingFlexibleHeight); 

imageView.contentMode = UIViewContentModeAspectFit; // You could also try UIViewContentModeCenter 

나는 경우 확실하지 않다 UIScrollView 내에서 imageView의 크기가 자동으로 조정되므로 자동 크기 조정이 작동하지 않으면 scrollview의 크기와 같은 크기로 회전 할 때 프레임을 직접 설정할 수 있습니다.

+1

고마워요! 그것은 빨랐다. 올바른 동작을 얻으려면 코드를 약간 변경해야했지만 (위 참조) 직접적인 방향으로 나를 넣었습니다. – user467225

+1

전혀 작동하지 않습니다. –

-1

필자는 유사한 상황을 겪었습니다. 일련의 사진을 표시하는 3 개의 imageViews ('이전', '현재'및 '다음')가있는 매우 간단한 scrollView입니다.

사진의 크기는 모두 iPad 용 이었지만 가로 및 세로 방향이 혼합되었습니다. 화면 비율 (필요시 레터 박스)에 화면 비율을 유지하면서 화면에 맞기를 원했습니다. 나는 그것이 작동하기 위해서 3 개의 imageViews에만 이것을 할 필요가 있다는 것을 알았습니다.

imageView.contentMode = UIViewContentModeScaleAspectFit;