【问题标题】:Implementing zoom in\out using UIImagePickerController使用 UIImagePickerController 实现放大\缩小
【发布时间】:2013-02-16 04:33:13
【问题描述】:

我一直在使用UIImagePickerController 来进行应用程序预览,我已经自定义和放大/缩小按钮,我之前没有使用过CGAffineTransformScale,但是我已经用谷歌搜索并使用CGAffineTransformScale 实现了放大功能,例如这……

- (void) zoom_in_clkd
{

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

}

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

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

【问题讨论】:

    标签: iphone ios cocoa-touch uiimagepickercontroller cgaffinetransformscale


    【解决方案1】:

    sx 和 sy 分别建议 x 和 y 值的缩放系数。

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

    从此link下载示例代码。

    【讨论】:

    • 如果我给出的值小于 1,则总视图大小本身正在减小,看起来并没有缩小,知道吗?
    【解决方案2】:

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

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

    我知道它不是返回上一个转换的正确方法,但它会解决问题。 :)

    【讨论】:

      【解决方案3】:

      我的解决方案是保存初始 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);
          }
      

      【讨论】:

        猜你喜欢
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-19
        • 1970-01-01
        相关资源
        最近更新 更多