Ios 在将UIView制作成图像之前,如何使其正确布局

Ios 在将UIView制作成图像之前,如何使其正确布局,ios,uiview,autolayout,Ios,Uiview,Autolayout,我正在使用此代码将UIView渲染为图像 -(UIImage *)getImageForView:(UIView *)aView { UIGraphicsBeginImageContextWithOptions(aView.bounds.size, NO, 0.0); [aView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewImage = UIGraphicsGetImageFromCurren

我正在使用此代码将UIView渲染为图像

-(UIImage *)getImageForView:(UIView *)aView {     
UIGraphicsBeginImageContextWithOptions(aView.bounds.size, NO, 0.0);
[aView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
我遇到的问题是视图没有使用autolayout正确设置。我该怎么办

目前,我创建了一个UIView“viewA”,其框架大小与我的视图的大小相符,然后创建了我复杂的预期视图“ViewB”(打开了自动布局),然后将ViewB作为子视图添加到“viewA”中,然后我将viewA赋予我的上述方法

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

编辑:以下是创建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];

换句话说,在两个视图上都调用它。

在图像上下文中呈现视图之前,向视图发送一条
layoutifneed
消息

显示视图创建和添加子视图的代码。你在设置画面吗?完成了。期待着您的想法。尝试:MyView*MyView=[[MyView alloc]initWithFrame:view.bounds];我本来打算自己回答的,但你说得很对。看来我需要把这两种观点结合起来。首先在myView上,然后在另一个视图上。然后它会正确地布局。