使 UIImageView 图像略小

Posted

技术标签:

【中文标题】使 UIImageView 图像略小【英文标题】:Make UIImageView image slightly smaller 【发布时间】:2015-07-03 02:38:00 【问题描述】:

我想让 UIImageView 中的图像比最初为我设置的图像略小。

我已将 contentMode 发送到 UIViewContentModeScaleAspectFill,但我仍想将其稍微小一些。

self.imgCamera.layer.cornerRadius = self.imgCamera.frame.size.width / 2;
self.imgCamera.contentMode=UIViewContentModeScaleAspectFill;
self.imgCamera.clipsToBounds = YES;

【问题讨论】:

你为什么不尝试更新你的 imageView 框架的大小? 试图更新我的框架的大小,但它不起作用 【参考方案1】:

假设你从情节提要的出口是

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

在您的编码中使用它来制作 UIImageView 的“填充”,这应该会为您提供图像尺寸小于您的框架的结果。

imageView.bounds = CGRectInset(imageView.frame, 10.0f, 10.0f);

【讨论】:

【参考方案2】:

你可以创建实用方法:

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize 
    //UIGraphicsBeginImageContext(newSize);
    // In next line, pass 0.0 to use the current device's pixel scaling factor (and thus account for Retina resolution).
    // Pass 1.0 to force exact pixel size.
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;

并实施它:

UIImage *myIcon = [self imageWithImage:myImage scaledToSize:CGSizeMake(20, 20)]

希望这会有所帮助。

【讨论】:

这个方法只会让图片变模糊,不会调整大小 并非如此。 UIImage 没有缩放或绝对大小,因此除非您在 Core Graphics 中强制缩减采样或绘制算法,否则它总是会根据视图调整大小。

以上是关于使 UIImageView 图像略小的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 编程:如何使 UIImageView 中的 UIImage 以实际大小显示?

如何使 CAShape 层适合 UIImage 视图?

如何在 uiimage 选择器控制器中更改图像大小

是否可以在不损失质量的情况下调整 UIImage 的大小?

UIImageView 中的 UIImage 位置偏移

将大 UIImage 比例下载到 UIImageView