不确定我做错了什么,但随后查看我刚刚使用我的应用拍摄的图像,图像被放大到原始图像上的特定位置,我不知道为什么。
这是我加载和显示图像的代码。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:path]];
imageView.contentMode = UIViewContentModeScaleAspectFill;
答案 0 :(得分:1)
这是因为您使用图像分配init,而不是使用修复大小。你的图像比你想象的要大,看起来像是“放大”。
这样做:
UIImageView* yourImageView = [[UIImageView alloc]initWithFrame:CGRectMake(x, y, width, height)];
yourImageView.image = [UIImage imageWithContentsOfFile:path];
yourImageView.contentMode = UIViewContentModeScaleAspectFill;
yourImageView.clipsToBounds = YES;
答案 1 :(得分:1)
您的图片正在缩放,因为您已经告诉该视图:
imageView.contentMode = UIViewContentModeScaleAspectFill;
用简单的英语,这是告诉图像视图通过缩放来使图像适合视图而不调整宽高比"。
如果您不想缩放图片,可以选择几个选项。您可以确保UIImageView
与您要在其中显示的图片具有相同的宽高比,或者您可以将内容模式更改为其他内容(例如UIViewContentModeScaleToFill
,这会将您的图片拉伸到适合,或UIViewContentModeCenter
,它将使其居中)。