ios - 无法更改从 Nib 加载的 UIView 的高度

标签 ios objective-c uiview

我有一个从 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];

xy 正在变化,但高度始终保持不变。 View 在 Nib 中的大小为 224,并且在运行时保持该高度。

最佳答案

Storyboard(或 XIB)为您生成代码。这段代码是在布局 subview 中执行的。因此,如果您想更改 XIB 中定义的 View 的框架,您应该在 viewDidLayoutSubviewslayoutSubviews 之后执行此操作。

因此,即使在设置 View 的高度之后,您的更改也会被 XIB 生成的代码覆盖,该代码将高度覆盖为 XIB 中定义的高度,在您的情况下为 224。宽度也是如此。

关于ios - 无法更改从 Nib 加载的 UIView 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858450/

相关文章:

ios - 如何使用 MagicalRecord 加载预先存在的 sqlite 文件?

ios - 当有多个文本字段时使用 uibutton 关闭键盘?

ios - 如何在使用它的 ViewController 上调整自定义(在单独的文件中创建)UIView 高度?

iOS:如何拍摄圆角的 UIView 快照?

ios - 如何在 Xamarin ios 中获取导航栏后退按钮的大小?

iOS:使用良好授权调用 https://api.dropboxapi.com/2/users/get_current_account 时代码状态 400

ios - 非常大的 uiview 中的 drawrect 和内存不足

iphone - 是否可以在 Objective-C 中重定向系统 API?

iOS7 UISearchBar 显示不正确

ios - 带顶部对齐的 Watchkit 多行标签