UIImageView忽略内容模式表单图像数据

时间:2014-05-10 09:09:17

标签: ios objective-c uiimageview

我正在尝试从数据加载图片:

NSError *error ;
NSString  *imagePath = [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"];
NSData *encryptedData = [NSData dataWithContentsOfFile:imagePath];
NSData *decryptedData = [RNDecryptor decryptData:encryptedData
                                    withPassword:PASSWORD
                                           error:&error];
UIImage *image = [UIImage imageWithData:decryptedData];

//adding image
UIImageView *movingImageView = [[UIImageView alloc]initWithImage:image];
[movingImageView setContentMode:UIViewContentModeScaleAspectFit];
[self.scrollView addSubview:movingImageView];

现在movingImageView忽略了内容模式!如果我宣布它的框架,它将被修复!但问题是我的数据是具有不同width大小的不同图像。任何解决方案?

编辑: 找到了解决方案:

 movingImageView.frame = CGRectMake(0, 0, image.size.width/2, image.size.height/2);

2 个答案:

答案 0 :(得分:0)

根据文件:

  

initWithImage:调整接收器的帧以匹配指定图像的大小。它还默认禁用图像视图的用户交互。

如果contentModeimageView具有相同的尺寸,image显然无效。

我猜您需要指定imageView' s width(可能与scrollView相同?),并根据image&#计算高度39; s维。

答案 1 :(得分:0)

使用以下行。它会将图像填充到帧中。如果大图像出现,它将显示宽高比的图像,一些部分可能会剪辑。尝试一次。

    movingImageView.contentMode = UIViewContentModeScaleAspectFill;
movingImageView.clipsToBounds = YES;[self.scrollView addSubview:movingImageView];