2013-12-07 42 views
1

我期待在之內呈現一個UIScrollView,它可以放大,然後平移和一切。所有這些都是在不使用IB的情況下在代碼中完成的。爲什麼我無法放大UIScrollView中的這個UIImageView?

我想添加的圖片和滾動型如下:

self.imageBeingOverlayed = [[UIImageView alloc] initWithImage:responseObject]; 
    self.imageBeingOverlayed.contentMode = UIViewContentModeScaleAspectFit; 

    self.imageBeingOverlayedScrollView = [[UIScrollView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
    self.imageBeingOverlayedScrollView.contentSize = ((UIImage *)responseObject).size; 
    self.imageBeingOverlayedScrollView.maximumZoomScale = 5.0; 
    self.imageBeingOverlayedScrollView.minimumZoomScale = 0.5; 

    [self.imageBeingOverlayedScrollView addSubview:self.imageBeingOverlayed]; 
    [darkOverlayView addSubview:self.imageBeingOverlayedScrollView]; 

當我創建圖像視圖,然後我把它添加到我創建(這兩個對象都能夠成爲一個滾動視圖在整個文件中訪問)。隨着我創建的scrollview,我只希望它像圖像一樣大,但我很困惑如何創建框架。也許就是這樣。

但不管,那麼我設置的最大和最小變焦倍數,我滾動視圖的委託在viewDidLoad設置爲self,我已經實現了這個方法還有:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return self.imageBeingOverlayed; 
} 

但是當我運行應用程序和使用一個體面大圖像可以平移圖像,但不放大。是什麼賦予了?

回答

0

根據描述,在設置minimumZoomScalemaximumZoomScale之前沒有設置scrollView的代表。在這種情況下,viewForZoomingInScrollView的呼叫不起作用,因爲代表仍然是nil。爲了解決這個問題,可以嘗試設置contentSizeminimumZoomScalemaximumZoomScale的委託在代碼中設置後:

self.imageBeingOverlayedScrollView.delegate = self; 
self.imageBeingOverlayedScrollView.contentSize = self.imageBeingOverlayed.image.size; 
self.imageBeingOverlayedScrollView.maximumZoomScale = 5.0; 
self.imageBeingOverlayedScrollView.minimumZoomScale = 0.5; 
相關問題