我现在正在构建一个使用 UISplitViewController
的 iPad 应用程序在详细 View Controller 上,我想初始化两个 UITableView
.然而,由于一些奇怪的原因,即使我尝试以相同的方式初始化这两个 TableView ,也只有第二个 TableView 被正确初始化。
这是我初始化 TableView 的代码:
_t1 = [[UITableView alloc] initWithFrame:CGRectMake(30, 400, 300, 600)];
_t1.delegate = self;
_t1.datasourse = self;
[self.view addSubview:_t1];
_t2 = [[UITableView alloc] initWithFrame:CGRectMake(360, 400, 300, 600)];
_t2.delegate = self;
_t2.datasourse = self;
[self.view addSubview:_t2];
我将这两个 TableView 设置为 @property (strong, nonatomic)
在我的 View Controller 的头文件中。我认为到目前为止我还没有犯过任何错误。
但是,这里是生成的详细 View Controller 的图像。在表格 View 顶部的一些空间被填充后,第一个表格 View 开始填充它的单元格。看起来冗余空间的高度与导航栏的高度相同,但是当我尝试输出 self.view
时在 addSubview:
之前上面代码的方法,我得到了相同的结果说self.view = <UIView: 0x10a3dd920; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0x10a3dd800>>
.所以,我认为它被添加到同一个父 View 中。
那我错过了什么?我该如何解决这个问题?我怀疑它与导航 Controller 或 Split View Controller 有关,但不确定。
我使用 iOS 7.1 和 Xcode 5.1。
最佳答案
也许这会解决你的问题
self.automaticallyAdjustsScrollViewInsets = NO;
我不确定该属性的用途是什么,但它肯定会混淆很多 UIScrollView 和 UITableView。
我没有找到很多文档,但我的理论是通常您有一个 uitableview 或一个 uiscrollview 作为您 View 的第一个 subview 。这个 subview 通常占据你 View 的整个框架。在那种情况下,我想您不必为不同的顶部栏(半透明、不透明、ios6)而烦恼。但这仍然是很多假设,我认为这不应该是默认行为。
关于ios - 表格 View 的高度与另一个不同,即使它们以相同的方式初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22478451/