一、描述问题:今天在做demo的时候发现了一个很奇怪的问题,如果你的项目中有tabBarController
,UITableViewController中的tableView和UIViewController中添加的tableView在屏幕中的位置是不一样的(tableView的frame设置成self.view.bounds)。先来张图看看样子。
-
UITableViewController
中tableView
的位置
可以看出,在UITableViewController中,tableVIew的bottm与tabBar的top齐平,无论你怎么滑动,tableView总是从tabBar的top出来,也就是距离屏幕底部49(tabBar的高度)。当然在一般情况下,这样做是不会出现任何问题的。但是,当我需要移动tabBar时就会出现底部有白色的tabBar遮挡,超级low!
二、解决方法:使用UIViewController中添加tableView的话,效果是这样子:
这样才是我们想要的结果。
三、分析原因
-
UITableViewController
的自动设置frame
设置有关
在UITableViewController
中会自动设置frame,不让tabBar遮挡,这样就造成了移动tabBar时出现白色遮挡的问题。也许有人想设置tableView的contentInset,但是我试过了,没有效果,如果有成功的请告知。