gpt4 book ai didi

swift - 无法使用 Swift 为自定义相机覆盖设置框架

转载 作者:搜寻专家 更新时间:2023-10-31 08:34:24 24 4
gpt4 key购买 nike

如问题所述,我在使用 Swift 语言为自定义相机覆盖设置 View 框架时遇到问题。我一直收到一个错误,指出“可选类型“CGRect”的值未展开”,我不太明白。问题是这一行:

cameraOverlay.frame = camera.cameraOverlayView?.frame

Xcode 尝试通过在帧末尾添加感叹号 (!) 来自动更正问题,但这也不起作用,并且会产生另一个错误。

这是我的自定义相机覆盖的整个 Nib 初始化代码:

@IBOutlet var cameraOverlay: UIView!

override func viewDidLoad()
{
super.viewDidLoad()

var camera = UIImagePickerController()
camera.delegate = self
camera.allowsEditing = false
camera.sourceType = UIImagePickerControllerSourceType.Camera
camera.showsCameraControls = false

NSBundle.mainBundle().loadNibNamed("CameraOverlay", owner: self, options: nil)
cameraOverlay.frame = camera.cameraOverlayView?.frame
camera.cameraOverlayView = cameraOverlay
cameraOverlay = nil

self.presentViewController(camera, animated: false, completion: nil)
}

感谢任何帮助。谢谢!

编辑确保您的 nib View 没有白色背景,否则相机将不会出现。将 View 背景颜色设置为 clearColor,并确保取消选中不透明以确保安全。我有一段时间遇到这个问题,直到我意识到发生了什么。

最佳答案

使用这个

    cameraOverlay.frame = camera.cameraOverlayView!.frame

实际上您正在使用 ? 可选链接,它返回包装在 optional 中的帧。! 用于可选展开

或者你也可以这样做

    //it will not crash but you should handle nil case using unwrap by `!` as shown above using `if` condition
cameraOverlay.frame = (camera.cameraOverlayView?.frame)!

关于swift - 无法使用 Swift 为自定义相机覆盖设置框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com