Ios 无法更改从nib加载的UIView的高度

Ios 无法更改从nib加载的UIView的高度,ios,objective-c,uiview,Ios,Objective C,Uiview,我有一个从nib加载的视图,如下所示: SLSCaseCard* caseCard = [[[NSBundle mainBundle] loadNibNamed:@"SLSCaseCard" owner:self options:nil] objectAtIndex:0]; 我把它的框架设置成这样: cardFrame = CGRectMake(25,25, caseCard.frame.size.width, 44); [caseCard setFrame:cardFrame]; [sel

我有一个从nib加载的视图,如下所示:

SLSCaseCard* caseCard  = [[[NSBundle mainBundle] loadNibNamed:@"SLSCaseCard" owner:self options:nil] objectAtIndex:0];
我把它的框架设置成这样:

cardFrame = CGRectMake(25,25, caseCard.frame.size.width, 44);
[caseCard setFrame:cardFrame];
[self.view addSubview:caseCard];
x
y
正在变化,但高度始终保持不变。视图在nib中的大小为224,并且在运行时保持该高度

故事板(或XIB)为您生成代码。这段代码在布局子视图时执行。所以,如果您想更改在XIB中定义的视图的框架,应该在
viewdilayoutsubviews
layoutSubviews
之后进行


因此,即使在设置视图的高度之后,您的更改也会被XIB生成的代码覆盖,在您的案例224中,该代码将高度覆盖到XIB中定义的高度。宽度也是如此

可能是您在使用xib的项目中使用了自动布局。抱歉,我忘了在原始帖子中提到,我尝试在我的nib和我的主情节提要上打开和关闭自动布局,但没有帮助。如果该视图已经来自您的xib的UIView,那么需要再次添加什么??@NitinGohel,我在循环中动态地向我的
self.view
添加了几个子视图我在for循环中动态加载视图,因此我尝试在放置视图时更改高度。如果您想要动态视图,请不要使用XIB或故事板。所有动态视图都应以编程方式创建。即使您可以使用XIB获得功能,您最终也会发现自己在一个包含约束和其他内容的错误池中(除非您对它们非常满意)。因此,我建议您以编程方式创建视图。