gpt4 book ai didi

ios - 拍摄 View 快照而不将其添加到屏幕

转载 作者:可可西里 更新时间:2023-11-01 03:55:52 28 4
gpt4 key购买 nike

我试图从 nib 加载一个 View ,配置它,并拍摄它的快照,而不是将它添加到屏幕上:

+ (void)composeFromNibWithImage:(UIImage*)catImage completion:(CompletionBlock)completion {

NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"CatNib" owner:nil options:nil];
CatView *catView = [nibContents firstObject];

//here, catView is the correct size from the nib, but is blank if inspected with the debugger

catView.catImageView.image = catImage;
catView.furButton.selected = YES;
UIImage *composite = [UIImage snapshot:catView];
completion(composite);
}

快照是典型的地方:

+ (UIImage *)snapshot:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image;
}

但是,当我单步执行代码时,catView 和 composite 的大小都正确但空白。如何从从 nib 加载的 View 创建 UIImage,而不将 View 添加到屏幕?

最佳答案

我前段时间遇到过类似的问题,据我所知,无法拍摄 View 的快照,因为它实际上不在屏幕上。我创建了一个解决方法,并将我想要快照的相关 View 放置在当前 ViewControllers View 边界之外,这样您就不会看到它。在这种情况下,可以创建有效的快照。希望这会有所帮助:)

关于ios - 拍摄 View 快照而不将其添加到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28509471/

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