UITableView 的 contentInset 在導航控制器中 和 非導航控制器中的區別

建立一個TableViewspa

//0, 0, 414, 700  注意xy 是0 0  哦
   UITableView *tab = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 414, 700) style:UITableViewStylePlain];

   //設置TableView的背景色
   tab.backgroundColor = [UIColor redColor];

   //打印tableView的contentInset.top
   NSLog(@"tableVIew的top%f",tab.contentInset.top);

   [self.view addSubview:tab];

 

在導航控制器中

  打印top 爲0code

可是導航欄能夠看到TableVIew的背景色。 而且第0行在導航欄下面。因此雖然contentInset.top =0 ,但顯示的效果卻有點不同 。並且確實是自動多了一塊額外滾動區域 it

 

 

在普通控制器中

 打印也爲 0table

可是能夠看到 第0行是頂到屏幕最上方顯示的, 而且top 也是爲0 ,普通控制器中是正常的樣子。class

 

 

 

 

然而還有更奇葩的:

在導航控制器中,當tableView 下面有一個view添加在self.view 上時,此時你在往self.view上添加tableView 會發現它又正常了,真是操蛋啊。代碼以下:object

//先添加一個 myView 到 self.view上
[self.view addSubview:myView];


//再添加一個tableView 到 self.view上
[self.view addSubview:self.tableView];

 

此時顯示效果以下:im

   

能夠看到TableView ,默認頂到屏幕最上方顯示了top

相關文章
相關標籤/搜索