我正在开发基于Tab Bar应用程序预设的应用程序。在其中一个选项卡中,我有一个显示大量数据的表格视图,但当我滚动到底部时,表格视图中最后一个单元格的一半被标签栏覆盖。
任何人都有解决方案吗?
答案 0 :(得分:16)
为我添加页脚空间:
//this prevent the tabbar to cover the tableview space
UIView *footer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 90)];
footer.backgroundColor = [UIColor clearColor];
myTableView.tableFooterView = footer;
答案 1 :(得分:11)
这就是诀窍(在Interface Builder中):
答案 2 :(得分:4)
有几个解决方案。
1。)假设您使用的是半透明工具栏,则必须使工具栏不透明。
2.。)如果你正在使用StoryBoard并且你在ViewController中放置一个TableView,假设它是一个ViewController而不是一个TableViewController。
3.)您可以手动添加填充/间距。
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars = YES;
self.automaticallyAdjustsScrollViewInsets = NO;
}
或
UIEdgeInsets insets = UIEdgeInsetsMake (0,sizeOfTableView - sizeOfTabBar, 0, 0);
self.tableView.contentInset = inset;
self.tableView.scrollIndicatorInsets = inset;
希望这会有所帮助&快乐的编码!
答案 3 :(得分:3)
查看标签栏的大小,并相应地调整表格视图的大小。阅读有关框架属性的文档,如果您为此目的使用IB,则允许您设置事物的大小等。
答案 4 :(得分:2)
我遇到了这个问题,最终到了这里......所以即使这个已经老了,我也是这样解决这个问题的:
我有一个UITabBar控制器,其中一个选项卡是UIViewController,它只有一个添加的行:
[self.view addSubview:navController.view];
这是错误 ..即使代码有效,概念也是错误的(至少在我的情况下),navController应该直接在UITabBar中链接作为其中一个标签...
那么,真正的答案是什么?
您必须错误地实施了导航控制器。正如我所解释的那样,证据就是我有这个问题,还有This Guy ......
答案 5 :(得分:1)
我发现唯一的解决方法是为tableview添加一个填充页脚:
答案 6 :(得分:1)
我刚刚通过添加常数...硬编码解决了这个问题...如何找到适合您的阈值?
答案 7 :(得分:0)
在tableview
部分选择您拥有Simulated Metrics
,打开属性检查器的视图,为底栏项选择Tab Bar
。
然后XCode
会更新您的视图,为TabBar
预留空间。因此,tableview
不会被覆盖。
答案 8 :(得分:0)
对我来说,只是UIViewController中的表视图没有任何约束,一旦我将其固定到视图的边缘就固定了。
答案 9 :(得分:0)
<强> SWIFT 强>
我遇到了这个问题,当我将UITableViewController嵌入到UITabBarController中时,最后一个单元格(或底部或大单元格)在完全向下滚动时会保留在TabBar下面。经过一天尝试各种代码和无法解决的工作后,我只需将我的UITableViewController重新嵌入导航控制器中,然后将它们嵌入到TabBar控制器中。间距是固定的,表视图现在清除了tabBar。
答案 10 :(得分:0)
斯威夫特3:
这对我来说非常有用。此代码不仅会停止显示标签栏后面的最后一个单元格,还会向上推动滚动指示。将代码放在viewDitLoad()
:
if let rect = self.navigationController?.tabBarController?.tabBar.frame
{
let y = rect.size.height
tableView.contentInset = UIEdgeInsetsMake( 0, 0, y, 0)
tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, y, 0)
}
答案 11 :(得分:-2)
我认为你有一个自定义Tabbar,你需要重置Tabbar的高度等于这个Tabbar的背景图像的高度。
UITabBar * tabbar = self.tabBar ;
[tabbar setBackgroundImage:[UIImage imageNamed:@"image.png"]] ;
[tabbar setFrame:CGRectMake(0, 480 - imageHeight, 320, imageHeight)];