gpt4 book ai didi

swift - 在显示之前将 uiview 转换为 uiimage

转载 作者:行者123 更新时间:2023-11-28 14:50:18 27 4
gpt4 key购买 nike

我正在尝试在特定坐标处将 UIView 添加到谷歌地图,据我所知,最简单的方法是将其转换为图像并将其添加为 GMSMarker .我找到了一个很好的扩展,可以为我将 View 转换为图像:

extension UIImage {
convenience init(view: UIView) {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.isOpaque, 0.0)
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
self.init(cgImage: (image?.cgImage)!)
}
}

问题是 View 尚未渲染,因此它的帧为零。该 View 包含仅在初始化时长度会有所不同的文本,因此我无法为其设置框架。

任何帮助将不胜感激

谢谢

最佳答案

该扩展程序运行良好(对其进行了测试),因此一切都与呈现后的调用有关。尝试 viewDidAppear 或在渲染发生后在函数中调用它。

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
newImageView.image = UIImage(view: self.topView)
}

如果这不起作用,您可以分享您调用扩展程序的代码吗?

关于swift - 在显示之前将 uiview 转换为 uiimage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924928/

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