我有一个从 Nib 加载的 View ,如下所示:
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
正在变化,但高度始终保持不变。 View 在 Nib 中的大小为 224,并且在运行时保持该高度。
最佳答案
Storyboard(或 XIB)为您生成代码。这段代码是在布局 subview 中执行的。因此,如果您想更改 XIB 中定义的 View 的框架,您应该在 viewDidLayoutSubviews
或 layoutSubviews
之后执行此操作。
因此,即使在设置 View 的高度之后,您的更改也会被 XIB 生成的代码覆盖,该代码将高度覆盖为 XIB 中定义的高度,在您的情况下为 224。宽度也是如此。
关于ios - 无法更改从 Nib 加载的 UIView 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858450/