在 xib 和代码之间具有不同高度的 UIView
Posted
技术标签:
【中文标题】在 xib 和代码之间具有不同高度的 UIView【英文标题】:UIView with different height between xib and code 【发布时间】:2013-06-06 08:29:41 【问题描述】:在我的应用程序的 iPad 版本中,我有一个 UIView
,TPKeyboardAvoidingScrollView
的子视图,由 xib
创建,其框架为 (0.0, 1024, 437)
。当您在输出框架中运行应用程序时,相应地变为(0.0, 1024, 800)
,其高度几乎是它应该具有的两倍。这是什么意思?我该如何解决?
代码:
//self.scrollView is a TPKeyboardAvoidingScrollView
CGFloat width = self.scrollView.frame.size.width;//is correct
CGFloat progY = 0;
self.view1.frame = CGRectMake(0, progY, width,
self.view1.frame.size.height);
[self.scrollView addSubview:self.view1];
progY+= self.view1.frame.size.height;
//is correct, the height is equal to that of the xib
self.view2.frame = CGRectMake(0, progY, width, self.view2.frame.size.height);
NSLog(@"the frame of view2 is %@", NSStringFromCGRect(self.view2.frame));
//the frame of view2 is 0, 215, 1024, 800
//the height would be 437 as in xib
[self.scrollView addSubview:self.view2];
progY+= self.view2.frame.size.height;//is wrong
//....
【问题讨论】:
你如何/在哪里初始化UIView
?
如果您已经在 xib 中设置了,那么需要以编程方式更改框架。如果视图已经在 xib 中实现,我不希望更改框架。
UIView 已经在 xib 中实现了,我想保持相同的高度,而不是改变
【参考方案1】:
您的 XIB 中的基本视图可能具有错误的自动调整大小属性等。
在 Size Inspector 中查看基本视图的自动调整大小设置 - 它不应该连接到屏幕的下端,也不能动态改变高度,那么你就可以了。
【讨论】:
我检查了 Size Inspector 并且等于另一个视图,其中高度是正确的。有没有其他办法? 高度是正确的 - 但是自动调整大小图像中的红线呢?你看到三个垂直的红线了吗?如果您不希望尺寸调整到您将视图放入的容器视图中,那应该只有一个 - 从屏幕顶部到视图的顶部边框。 现在我找到了,尺寸检查器出错了。非常感谢 你是圣人!这个问题困扰我很久了以上是关于在 xib 和代码之间具有不同高度的 UIView的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ViewController 中的 xib (nib) 实例化 UIView / UITableView