2014-03-13 33 views
1

在Xcode中5.1我創建了一個非常簡單的單一視圖的iPhone應用程序,並把the source code at GitHub簡單的測試應用 - 與設備旋轉和縮放問題

app screenshot

我有禁用自動佈局,並把對方的意見如下:scrollView -> contentView -> imageView(這裏fullscreen):

Xcode screenshot

contentViewimageView我已禁用自動調整並將其幀設置爲{0, 0, 1000, 1000} - 既在故事板中也在viewDidLoad方法中。

我已經啓用了雙擊和捏手勢進行縮放。

對於雙擊,圖像以100%或50%的寬度放大。

這工作一開始,但是設備旋轉後它打破:

變焦不能正常工作和圖像偏移 - 你不能滾動到其左上角:

image screenshot

這是我在​​3210很短的代碼,請指教如何解決它:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    _imageView.frame = CGRectMake(0, 0, 1000, 1000); 
    _contentView.frame = CGRectMake(0, 0, 1000, 1000); 
} 

- (void)viewDidLayoutSubviews 
{ 
    [super viewDidLayoutSubviews]; 

    float scale = _scrollView.frame.size.width/1000; 

    _scrollView.minimumZoomScale = scale; 
    _scrollView.maximumZoomScale = 2 * scale; 
    _scrollView.zoomScale = 2 * scale; 

    _scrollView.contentSize = CGSizeMake(1000, 1000); 
} 

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView 
{ 
    return _contentView; 
} 

- (IBAction)scrollViewDoubleTapped:(UITapGestureRecognizer*)sender 
{ 
    if (_scrollView.zoomScale < _scrollView.maximumZoomScale) 
     [_scrollView setZoomScale:_scrollView.maximumZoomScale animated:YES]; 
    else 
     [_scrollView setZoomScale:_scrollView.minimumZoomScale animated:YES]; 
} 

更新:我使用顯示的應用程序(這裏fullscreen)試過了,但找不到任何有用的東西對我來說:

Reveal app

+0

rollview? – Amandir

+0

因爲這是我爲StackOverflow編寫的簡化測試用例。在真實的應用程序中,會有更多的東西放在'contentView'上 - 標籤和可拖動的字母圖塊:https://raw.github.com/afarber/ios-newbie/master/DragScroll/screenshot.png –

回答

1

我的源代碼似乎是好的,但在接口生成器,我不得不禁用「自動調整子視圖」爲scrollView:你爲什麼要使用內容查看,也不要直接添加的ImageView到SC

Xcode screenshot