사진 앱과 마찬가지로 이미지 뷰어를 개발하고 있습니다.UIImageViews가 포함 된 UIScrollView의 회전을 올바르게 처리하는 방법은 무엇입니까?
인터넷에서로드 된 이미지로 페이징 기능을 사용할 수있는 UIScrollView이므로 부분을 수정했습니다. Scroll View와 내부의 각 ImageView에는 자동 크기 조정 마스크 플래그가 모두 설정되어 있습니다.
회전 중에 크기 조정이 어떻게 발생하는지 처음 보았을 때 좋았지 만 일단 스크롤 뷰와 상호 작용하기 시작하면 프로그래밍 방식으로 contentView의 크기를 변경해야한다는 것을 알았습니다. didRotateFromInterfaceOrientation을 구현하여이를 수행했습니다. 내 View Controller에서. 상호 작용이 제대로 행동으로
[self.scrollView setContentSize:CGSizeMake(numberOfImages * portraitWidth, [scrollView bounds].size.height)];
, 나는 그때 두 번째 사진을보기 및 회전 된 경우, 1 차 및 2 차 사진 모두의 부분이 화면에 표시 될 수 있음을 발견했다. 나는 또한 contentOffset을 바꿀 필요가 있었다.
나는이 두 가지 방법으로 - scrollRectToVisible : animated : 메서드를 사용하여 UIScrollView를 수정하고 contentOffset 속성을 직접 설정하려고 시도했습니다. 오리엔테이션의 변화에 대한 "1 단계"및 "2 단계"응답 구현에이 코드를 사용하여 실험했습니다. 예 :
-(void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
[self.scrollView setContentOffset:CGPointMake(currentlyViewedPhotoIndex * largeImageHeight,0) animated:YES];
모든 경우에 janky가 지옥처럼 보입니다. 두루마리가 분명하게 보입니다. 아니면 그냥 점프합니다. 우와 우와 우아 우의! 사진 앱과 똑같이 작동하도록이 작업을 수행 할 수있는 방법이 있습니까?