2014-07-21 98 views
2

加载的UIView的高度我有一个从笔尖加载像这样一个观点:无法更改从笔尖

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]; 

xy正在改变,但高度始终保持不变。该视图在笔尖中的大小为224,并且在运行时保持在该高度。

+3

可能是你正在使用自动布局,你用xib项目。 –

+0

对不起,我忘了在原始文章中提到,我尝试在我的笔尖和主要故事板上打开和关闭AutoLayout,但它没有帮助。 – Carpetfizz

+0

如果该视图来自你的xib的UIView已经有什么需要再次添加? –

回答

2

故事板(或XIB)为您生成代码。此代码在布置子视图时执行。因此,如果您想更改XIB中定义的视图的框架,则应在viewDidLayoutSubviewslayoutSubviews之后执行此操作。

因此,即使在设置视图的高度后,您的更改将被XIB生成的代码覆盖,该代码在您的案例224中将高度替换为XIB中定义的高度。与宽度相同。

+0

我在for循环中动态地加载视图,所以我试图在视图放置时更改高度。 – Carpetfizz

+1

如果您想要动态视图,请不要使用XIB或故事板。所有动态视图都应该以编程方式创建。即使你可以使用XIB来获得你的功能,你最终会发现自己陷入了一系列带有限制和东西的错误(除非你对它们非常满意)。所以我建议你以编程方式创建视图。 –