Tableview最后一行被切断tabbarcontroller下
问题描述:
我有一个Tabbarcontroller和第一个tabview我有一个tableviewcontroller。现在最后一行是半可见的,其余的在tabbarcontroller下面。Tableview最后一行被切断tabbarcontroller下
我没有选中我的tabbar控制器的界面生成器中的边缘,但没有任何更改。
我也试过这在我的tableview控制器:
self.edgesForExtendedLayout = UIRectEdgeNone;
但还是最后一排是成功的一半的TabBar下方。
有人想法我怎么能解决这个问题?
答
试试这个viewDidLoad方法中
- (void)viewDidLoad
{
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeAll;
self.tableView.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);
}
答
有点迟到了,但迅速解决这将是只是行添加:
self.edgesForExtendedLayout = .None
您的ViewController的ViewDidLoad
答
Swift 3
我有这个问题,并寻找小时的答案。进入故事板并取消选中“底部酒吧”不起作用。我遇到了这个答案,但在试图访问像Sanjay那样的tabBar高度时一直得不到零。我硬编码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)
}
答
它是由的TabBar造成被默认在IB半透明的,如果你不需要这个效果,你可以用代码更改:
override func viewDidLoad() {
super.viewDidLoad()
tabBarController?.tabBar.isTranslucent = false
}
或通过选择tabBar并在IB中取消选中半透明框。
谢谢,它现在有效。奇怪的是,当你在界面构建器中设置它时,它不起作用,并且在代码中它可以工作。 – user1007522 2015-04-06 10:38:48