首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UIImagePickerController实现放大/缩小

问使用UIImagePickerController实现放大/缩小
EN

Stack Overflow用户
提问于 2013-02-16 12:33:14
回答 3查看 1.8K关注 0票数 1

我一直使用UIImagePickerController用于我的应用程序预览,我有自定义和放大/缩小按钮,我以前没有使用过CGAffineTransformScale,但是我已经使用CGAffineTransformScale搜索并实现了放大功能,如下所示……

代码语言:javascript
复制
- (void) zoom_in_clkd
{

        preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);

}

这看起来很好,但是我想实现缩小功能,我不知道在CGAffineTransformScale中它的sx,sy值应该是什么。

谁能告诉我一个好的使用CGAffineTransformScale的教程或示例代码

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-16 13:44:18

我已经用不同的方式模拟了缩小功能,我所做的是我重置到身份(带回原始大小),并再次放大到我想要的位置,就像这样。

代码语言:javascript
复制
      if (cameraTransformX == 2.0) {
            preview_picker.cameraViewTransform = CGAffineTransformIdentity;
            cameraTransformX -= 1.0;
        } else if (cameraTransformX == 3.0) {
            preview_picker.cameraViewTransform = CGAffineTransformIdentity;
            preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
            cameraTransformX -= 1.0;
        }  else if (cameraTransformX == 4.0) {
            preview_picker.cameraViewTransform = CGAffineTransformIdentity;
            preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
            preview_picker.cameraViewTransform = CGAffineTransformScale(preview_picker.cameraViewTransform, 1.0, 1.2499);
            cameraTransformX -= 1.0;
        }

我知道这不是一种返回到以前的转换的正确方法,但它可以做到这一点。:)

票数 1
EN

Stack Overflow用户

发布于 2013-02-16 12:58:29

sx和sy分别建议x和y值的缩放因子。

如果您想缩小视图,请提供sx和sy < 1.0

从这个link下载示例代码。

票数 1
EN

Stack Overflow用户

发布于 2015-12-14 17:37:10

我的解决方案是保存初始cameraViewTransform,并将其用于放大/缩小。对于缩小,您可以缩小比例,例如初始设置为3。以下是我的代码:

代码语言:javascript
复制
    // initial cameraViewTransform
    self.initialTransform = self.videoRecorderController.cameraViewTransform;

    // for zoom in
    if(self.zoomIn) {
            // increment scale
            self.scale += 0.5;
            self.videoRecorderController.cameraViewTransform = CGAffineTransformScale(self.initialTransform, self.scale, self.scale);
    }
    // for zoom out
    else {
           self.scale -= 0.5;
           self.videoRecorderController.cameraViewTransform = CGAffineTransformScale(self.initialTransform, self.scale , self.scale);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14906974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档