我正在開發圖像查看器,很像照片應用程序。如何正確處理包含UIImageViews的UIScrollView的旋轉?
這是一個UIScrollView,啓用了從互聯網上加載圖像的分頁功能,所以我調整了部分LazyTableImages sample。滾動視圖和其中的每個ImageView都具有設置的所有自動調整大小掩碼標誌。
當我第一次觀察旋轉過程中如何調整大小時,它看起來不錯,但是一旦我開始嘗試與滾動視圖進行交互,我意識到我還必須以編程方式更改contentView的大小。我通過實現didRotateFromInterfaceOrientation做到了這一點:在我的視圖控制器中。
[self.scrollView setContentSize:CGSizeMake(numberOfImages * portraitWidth, [scrollView bounds].size.height)];
隨着相互作用行爲正常,然後我發現,如果我觀看第二照片並旋轉時,第一和第二照片兩者的部分將被顯示在屏幕上。我還需要更改contentOffset。
我試圖解決這兩種方法 - 通過使用UIScrollView的scrollRectToVisible:animated:方法,以及試圖直接設置contentOffset屬性。我已經嘗試將這些代碼放在方向變化的「一步」和「兩步」響應實現中。例如:
-(void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
[self.scrollView setContentOffset:CGPointMake(currentlyViewedPhotoIndex * largeImageHeight,0) animated:YES];
在所有情況下,它只是看起來像死一般。要麼我清楚地看到滾動發生,要麼只是跳躍。 Uuuuuuuuuuugly!有沒有辦法做到這一點,使其行爲完全像照片應用程序呢?