gpt4 book ai didi

ios - 方向改变后之前的 ViewController 的屏幕截图

转载 作者:行者123 更新时间:2023-11-30 14:17:37 25 4
gpt4 key购买 nike

我完全实现了这篇文章中描述的内容: Send Screenshot of ViewController to other ViewController

但是在“ProfileViewController”中更改方向后我遇到了问题。我试图获取“ViewController”的屏幕截图,但我只是获取了先前方向的 View 图像。

我尝试过类似的方法,但似乎没有任何帮助:

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {

coordinator.animateAlongsideTransition(nil, completion: { (context : UIViewControllerTransitionCoordinatorContext!) -> Void in
var viewController = self.navigationController!.viewControllers[0] as! UIViewController

viewController.view.setNeedsDisplay()
viewController.view.setNeedsLayout()
viewController.view.layoutIfNeeded()

self.backgroundImage = viewController.getImageDump()
})

super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
}

“getImageDump”是 UIViewController 上的扩展方法:

func getImageDump() -> UIImage {
var size = view.bounds.size
UIGraphicsBeginImageContextWithOptions(size, true, 0);
view.layer.renderInContext(UIGraphicsGetCurrentContext())
var image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image
}

编辑:已经修复;只需手动设置 View Controller 的大小。所以而不是

        viewController.view.setNeedsDisplay()
viewController.view.setNeedsLayout()
viewController.view.layoutIfNeeded()

就这么做

        viewController.view.frame.size = size

最佳答案

使用快照代替

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates;

关于ios - 方向改变后之前的 ViewController 的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931446/

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