4

我有一个 UIImageView,它从 ios 文件系统的文档目录中加载图像。

问题是当我打电话时

[imageView sizeToFit];

这没用。我认为这是因为图像在那时还没有完全加载,所以 sizeToFit 部分在它具有图像宽度和高度之前被调用。

有人可以指出我的修复方向吗?

这是我的代码:

imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.image = [UIImage imageWithContentsOfFile:[FileOperations getLibraryPath:[NSString stringWithFormat:@"%d.png", listData.imageId]]];
[imageView sizeToFit];
[imageScroll setContentOffset:CGPointMake(0, 0)];
imageScroll.contentSize = imageView.frame.size;
imageScroll.decelerationRate = UIScrollViewDecelerationRateFast;
imageScroll.minimumZoomScale = 1;
imageScroll.maximumZoomScale = 2;
[imageScroll setZoomScale:imageScroll.minimumZoomScale];
[imageScroll addSubview:imageView];

谢谢,阿什利

4

3 回答 3

3

检查图像大小:

NSLog(@"%@", NSStringFromCGSize(imageView.image.size));

您可能希望imageView根据图像大小手动设置框架,例如,如果图像太大而无法容纳imageView的超级视图。

于 2012-05-04T16:00:33.867 回答
1
UIImageView *myImage = [[UIImageView alloc]init];
myImage.contentMode = UIViewContentModeScaleAspectFit;
myImage.image = [UIImage imageName:@"image.png"];
[self.view addSubview:myImage];
于 2015-10-19T10:46:17.020 回答
0

sizeToFit应该在您的情况下工作,但如果 UIImage 为零,则失败。

UIImageimageWithContentsOfFile:返回一个(完全加载的)对 aUIImage或的引用nil。你确定你走的是正确的道路吗?

于 2012-05-04T16:02:14.477 回答