UIScrollView zoomScale未正确设置

时间:2013-08-01 21:18:40

标签: ios objective-c uiscrollview

我有一个UIScrollView,里面有一个UIImageView,我想让UIScrollView进行缩放,以使图像适合宽度或高度。我计算图像宽度和高度与屏幕高度和宽度的比率。基于哪个更小我将UIScrollView的zoomScale设置为该值。

我在我的scrollView

中计算这些
_heightRatio=frame.size.width/img.size.width;
_widthRatio=frame.size.height/img.size.height;

在我的viewController的viewDidLoad中执行此操作。(photoViewer是我的scrollView,widthRatio和heightRatio是我的scrollView中的变量)

if([photoViewer widthRatio]<[photoViewer heightRatio]){
    NSLog(@"if");
    photoViewer.zoomScale=[photoViewer widthRatio];
    photoViewer.minimumZoomScale=[photoViewer widthRatio];
    if([photoViewer widthRatio]>1){
        NSLog(@"Width>1");
        photoViewer.zoomScale=1;
        photoViewer.minimumZoomScale=1;
    }

}
else{
    NSLog(@"else");
    NSLog(@"height: %f",[photoViewer heightRatio]);
    photoViewer.zoomScale=[photoViewer heightRatio];
    photoViewer.minimumZoomScale=[photoViewer heightRatio];
    if ([photoViewer heightRatio]>1) {
        NSLog(@"Height>1");
        photoViewer.zoomScale=1;
        photoViewer.minimumZoomScale=1;
    }
}
NSLog(@"Zoom scale: %f",photoViewer.zoomScale);

当我使用某些图像运行它时它工作正常并打印出正确的zoomScale,但是当我用其他图像运行它时,它会打印出1作为zoomScale。

编辑:更新了if-else

编辑:已解决:我感谢大家的帮助!

0 个答案:

没有答案