如何在不使用 UIImageView 的情况下捏缩放 UIImage?

Posted

技术标签:

【中文标题】如何在不使用 UIImageView 的情况下捏缩放 UIImage?【英文标题】:How I can pinch zoom UIImage without using UIImageView? 【发布时间】:2013-11-07 15:55:22 【问题描述】:

我有 UIImage,我想在不将其设置到 UIImageView 的情况下对其进行缩放。 我该怎么做?

【问题讨论】:

你现在画的UIImage怎么样?与用户的任何交互都应由用户可以与之交互的UI 元素处理。 UIImage 是,虽然名称暗示其他,而不是 UI 元素。你需要显示在UIImageView,UIButton,...` 【参考方案1】:

正如@rckoenes 提到的,UIImage 只是一个图像对象,它不处理显示,这正是 UIImageView 的用途。

对于缩放图像,最简单的方法是添加UIImageView as a subview to a UIScrollView。

【讨论】:

【参考方案2】:

如果你想要改变 UIImage 的大小,我在这里回答了这个问题:set size of an image programatically

只需这样做:

// Given a UIImage image and a CGSize newSize:

UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

// Your scaled image is now in newImage

【讨论】:

感谢您的回答。但是在这里我们应该定义 newSize 是否有可能在使用“CGAffineTransformScale”时执行类似操作。我的意思是捏缩放是动态进行的?

以上是关于如何在不使用 UIImageView 的情况下捏缩放 UIImage?的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 IB 的情况下添加 UIImageView 作为 UIViewController 的子视图

当文本覆盖整个屏幕时,通过捏缩文本

可拖动的 UITextField 在不应该的时候进入编辑状态

如何在 iOS 中保存 UIImageView 数据

没有 UIImageView 的 UIImage 的反射

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