【问题标题】:UIImagePickerController using iOS 8 cameraViewTransform isn't scaling使用 iOS 8 cameraViewTransform 的 UIImagePickerController 没有缩放
【发布时间】:2014-09-09 00:17:10
【问题描述】:

我之前解决了一个相机覆盖问题:like this

CGSize screenBounds = [UIScreen mainScreen].bounds.size;

CGFloat cameraAspectRatio = 4.0f/3.0f;

CGFloat camViewHeight = screenBounds.width * cameraAspectRatio;
CGFloat scale = screenBounds.height / camViewHeight;

self.picker.cameraViewTransform = CGAffineTransformMakeTranslation(0, (screenBounds.height - camViewHeight) / 2.0);
self.picker.cameraViewTransform = CGAffineTransformScale(self.picker.cameraViewTransform, scale, scale);

但现在在 iOS 8 中,实时照片预览的底部又出现了一个黑条。所以像这样的缩放不再起作用:

self.picker.cameraViewTransform = CGAffineTransformScale(self.picker.cameraViewTransform, scale, scale);

我无法缩放 cameraViewTransform。关于如何让它与 iOS 8 一起工作的任何想法?这是否已被弃用?

【问题讨论】:

  • 你知道屏幕绑定的变化吗?? stackoverflow.com/questions/24150359/…
  • @Jageen:我面临与 djburdick 完全相同的问题。我使用相同的代码来缩放 iPhone 5 尺寸设备中的 UIImagePickerController。但是,同样在 iOS 8 中失败了。记住 iOS 8 中关于屏幕绑定的变化,上面的代码 sn-p 应该有什么变化?我无法弄清楚。请帮忙。
  • @djburdick:你在 iOS 8 中找到解决这个问题的方法了吗?请告诉我。对我有很大帮助!
  • 我遇到了同样的问题。对此的任何解决方案。
  • 请分享这方面的任何解决方案?

标签: ios objective-c ios8


【解决方案1】:

在 iOS 8 中,如果您想填满屏幕,则不再需要缩放。所以你唯一要做的就是评论这个作业:

//self.picker.cameraViewTransform

也就是说self.picker.cameraViewTransform = CGAffineTransformMakeScale(1.0, 1.0) 自动符合self.picker.view.frame。

总之,UIImagePickerController 已经为您完成了这项工作。

【讨论】:

  • 这是真的吗?我没有检查过。但它在没有转换的情况下工作吗?
  • 没有转换,在8.2中,我无法正确旋转预览,这比黑条问题要严重得多。
  • 托尼·亚当斯在哪里看到了问题中有关轮换的任何信息?您应该评估对问题的回答。这种方法确实符合原始问题。
猜你喜欢
  • 2016-12-31
  • 2015-01-06
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
相关资源
最近更新 更多