UITabBar 将隐藏 UITableView 的最后一个单元格

Posted

技术标签:

【中文标题】UITabBar 将隐藏 UITableView 的最后一个单元格【英文标题】:UITabBar will hide the last cell of the UITableView 【发布时间】:2013-11-01 03:16:32 【问题描述】:
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height ) style:UITableViewStylePlain];

如果我将 tableview 框架更改为

(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height -49.0)

滚动条会留下空白,我不喜欢它。我该如何解决这个问题?

非常感谢。

【问题讨论】:

Tab bar covers UITableView's last cell 的可能重复项 【参考方案1】:

您可以尝试设置该表视图的contentInset。在 ios 7 中有一个 topLayoutGuidebottomLayoutGuide(这是你想要的)。在UITabBarController 内部,bottomLayoutGuide 基本上应该给你底栏的高度。

tableView.contentInset = UIEdgeInsetsMake(0, 0, self.bottomLayoutGuide.length, 0);

应该可以解决问题。

【讨论】:

谢谢,tableView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0) 有效! 您可能仍希望避免在此处使用任何幻数。尤其是当您支持设备旋转时。 bottomLayoutGuide 将始终反映您的 UITabBar 的当前高度。 是的,先生,您是对的。现在我正在使用“self.bottomLayoutGuide.length”。 我的 self.bottomLayoutGuide.length 在我登录时返回 0。我该如何解决?谢谢! @jaytrixz 可能为 0,因为尚未发生布局。尝试在控制器的 viewDidLayoutSubviews 方法中更新 contentInset。【参考方案2】:

设置半透明属性为NO

// In init or viewDidLoad of tab bar controller
self.tabBar.translucent = NO;

现在标签栏应该调整表格视图的大小。

translucent 属性适用于 iOS 7 及更高版本。

【讨论】:

看到这么多人建议将不透明的标签栏设置为半透明,真是令人沮丧。你不明白OP问的问题吗? self.tabBar.isTranslucent = false for swift 4【参考方案3】:

你有两个选择:

第一

self.tableView.contentInset.bottom = self.tabBarController?.tabBar.frame.height ?? 0

这样就可以解决问题并保存 tab 栏的 transparent 属性。


第二 在设计视图中只需取消选中选项Under Bottom Bars,但请记住tab bar 看起来像纯色(后面没有任何东西)。

【讨论】:

【参考方案4】:

// 在 vi​​ewDidLoad() 中,以下几行对我有用

self.edgesForExtendedLayout = UIRectEdge.None self.navigationController?.navigationBar.translucent = false self.tabBarController?.tabBar.translucent = false

【讨论】:

【参考方案5】:

斯威夫特

self.tabBar.isTranslucent = false

注意:@Eric Amorde 答案转换为 Swift。

【讨论】:

以上是关于UITabBar 将隐藏 UITableView 的最后一个单元格的主要内容,如果未能解决你的问题,请参考以下文章

MonoTouch:UITabBar 与 UITableView 重叠

当我的应用程序通过我的 UITabBar 完成启动时,如何将加载的数据传递给 UITableView?

使用 UITableView 填充 UITabBar

包含 UITableView 和 UITabBar 的视图

将 UIButton 放置在与 UITabBar 相同的空间中(隐藏时)

如何隐藏UITabBar?