gpt4 book ai didi

swift - UIScrollView可见区域截图

转载 作者:行者123 更新时间:2023-11-28 13:49:02 28 4
gpt4 key购买 nike

我有一个 UIScrollView 作为 View Controller 主视图的 subview 。我试图仅保存 UIScrollView 框架中可见内容的屏幕截图。

UIGraphicsBeginImageContextWithOptions(imageScrollView.bounds.size, false, UIScreen.main.scale) 让上下文 = UIGraphicsGetCurrentContext() context?.translateBy(x: 0, y: 0)

    view.layer.render(in: context!)
let visibleScrollViewImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()


let popupImageView = UIImageView(image: visibleScrollViewImage)
popupImageView.layer.borderColor = UIColor.white.cgColor
popupImageView.layer.borderWidth = 4
popupImageView.frame = CGRect(origin: CGPoint(x: 0, y: 400), size: CGSize(width: 400, height: 400))

imageScrollView.removeFromSuperview()

view.addSubview(popupImageView)

popupImageView 的部分只是为了测试并查看实际保存的内容,似乎存在一些偏移问题,水平轴很好但我似乎只得到了我想要的图像的前三分之一,并且上面只是黑暗的空间。

看起来这一定是一个非常简单的解决方案,但我已经搜索了所有类似的问题,但找不到答案。

非常感谢!

最佳答案

尝试以下操作。如果我使用 UITableView 控件执行此操作,它就可以工作。

import UIKit

class ViewController: UIViewController {
@IBAction func snapTapped(_ sender: UIButton) {
UIGraphicsBeginImageContextWithOptions(imageScrollView.bounds.size, true, 1.0)
imageScrollView.drawHierarchy(in: CGRect(origin: CGPoint.zero, size: imageScrollView.bounds.size), afterScreenUpdates: true)
if let image = UIGraphicsGetImageFromCurrentImageContext() {
UIGraphicsEndImageContext()
myImageView.image = image
}
}
}

关于swift - UIScrollView可见区域截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55000302/

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