1

我一直在使用UIImagePickerController我的应用程序预览目的,我已经自定义和放大/缩小按钮,我以前没有使用过,但是我已经用谷歌搜索并使用这样CGAffineTransformScale的实现放大功能......CGAffineTransformScale

- (void) zoom_in_clkd
{

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

}

看起来不错,但是我想实现缩小功能,我不知道它的 sx,sy 值应该是什么CGAffineTransformScale

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

4

3 回答 3

1

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

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

从此链接下载示例代码。

于 2013-02-16T04:58:28.567 回答
1

我以不同的方式模拟了缩小功能,我所做的是重置身份(恢复到原始大小)并再次放大到我想要的位置。

      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;
        }

我知道这不是回到先前转换的正确方法,但它会解决问题。:)

于 2013-02-16T05:44:17.520 回答
0

我的解决方案是保存初始 cameraViewTransform 并将其用于放大/缩小。要缩小比例,请缩小比例,例如最初设置为 3。这是我的代码:

    // 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);
    }
于 2015-12-14T09:37:10.210 回答