gpt4 book ai didi

ios - 如何在将 UIView 制作成图像之前正确布局它

转载 作者:可可西里 更新时间:2023-11-01 17:08:47 27 4
gpt4 key购买 nike

我正在使用这段代码将 UIView 渲染成图像

-(UIImage *)getImageForView:(UIView *)aView {     
UIGraphicsBeginImageContextWithOptions(aView.bounds.size, NO, 0.0);
[aView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}

我遇到的问题是未使用自动版式正确设置 View 。我该怎么办。

我目前创建了一个 UIView“viewA”,其框架大小适合我的 View ,然后创建复杂的预期 View “ViewB”(已启用自动布局),然后将 viewB 作为 subview 添加到“viewA”然后我将 viewA 提供给我的上述方法。

首先我认为 viewA 不必添加到某些 superview 但它布局不正确,我应该将 alpha 为 0 的 viewA 添加到 superview,然后我假设可以使用“layoutIfNeeded”但是我应该在哪个 View 中执行此操作?

编辑:这是创建 UIView 的代码

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 439)];

//This is the UIView that contains a lot of views
MyView *myView = [[MyView alloc] init];

myView.translatesAutoresizingMaskIntoConstraints = NO;

[view addSubview:myView];

[view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:[myView(439)]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(myView)]];

[view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"H:[myView(320)]"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(myView)]];

最终对我有用的东西

[myView layoutIfNeeded];
[view layoutIfNeeded];

换句话说,在两个 View 上调用它。

最佳答案

在您的图像上下文中呈现它之前,向您的 View 发送一条 layoutIfNeeded 消息。

关于ios - 如何在将 UIView 制作成图像之前正确布局它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16872484/

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