tabbarcontroller下tableview最后一行被截断
Tableview last row is cut off under tabbarcontroller
我有一个 Tabbarcontroller,在第一个 tabview 中我有一个 tableviewcontroller。现在最后一行是半可见的,其余部分位于 tabbarcontroller 下方。
我在标签栏控制器的界面生成器中取消选中扩展边缘,但没有任何变化。
我也在我的 tableview 控制器中尝试过这个:
self.edgesForExtendedLayout = UIRectEdgeNone;
但最后一行仍然在标签栏下方的一半。
有人知道我该如何解决这个问题吗?
在 viewDidLoad 方法中试试这个
- (void)viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeAll;
self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);
}
晚会有点晚了,但是swift解决这个问题的方法是添加一行:
self.edgesForExtendedLayout = .None
你的ViewController的ViewDidLoad
Swift 3
我遇到了这个问题,并且花了好几个小时寻找答案。进入情节提要并取消选中 "Under Bottom Bars" 没有用。我遇到了这个答案,但在尝试像 Sanjay 那样访问 tabBar 的高度时一直得到 nil 。我硬编码了 tabBar 高度,它全是肉汁。
在 viewDidLoad 中添加以下内容:
override func viewDidLoad() {
super.viewDidLoad()
let tabBarHeight = CGFloat(49)
edgesForExtendedLayout = UIRectEdge.all
tableView.contentInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: tabBarHeight, right: 0.0)
}
是IB中TabBar默认半透明造成的,如果不需要这个效果可以用代码更改:
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.tabBar.isTranslucent = false
}
或者在 IB 中选择您的 tabBar 并取消选中半透明框。
我有一个 Tabbarcontroller,在第一个 tabview 中我有一个 tableviewcontroller。现在最后一行是半可见的,其余部分位于 tabbarcontroller 下方。
我在标签栏控制器的界面生成器中取消选中扩展边缘,但没有任何变化。
我也在我的 tableview 控制器中尝试过这个:
self.edgesForExtendedLayout = UIRectEdgeNone;
但最后一行仍然在标签栏下方的一半。
有人知道我该如何解决这个问题吗?
在 viewDidLoad 方法中试试这个
- (void)viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeAll;
self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);
}
晚会有点晚了,但是swift解决这个问题的方法是添加一行:
self.edgesForExtendedLayout = .None
你的ViewController的ViewDidLoad
Swift 3
我遇到了这个问题,并且花了好几个小时寻找答案。进入情节提要并取消选中 "Under Bottom Bars" 没有用。我遇到了这个答案,但在尝试像 Sanjay 那样访问 tabBar 的高度时一直得到 nil 。我硬编码了 tabBar 高度,它全是肉汁。
在 viewDidLoad 中添加以下内容:
override func viewDidLoad() {
super.viewDidLoad()
let tabBarHeight = CGFloat(49)
edgesForExtendedLayout = UIRectEdge.all
tableView.contentInset = UIEdgeInsets(top: 0.0, left: 0.0, bottom: tabBarHeight, right: 0.0)
}
是IB中TabBar默认半透明造成的,如果不需要这个效果可以用代码更改:
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.tabBar.isTranslucent = false
}
或者在 IB 中选择您的 tabBar 并取消选中半透明框。