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

jxd*_*ter 20 uitableview uitabbar ios

self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height ) style:UITableViewStylePlain];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果我将tableview框架更改为

(0.0, 0.0, 320.0, [UIScreen mainScreen].bounds.size.height -49.0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

滚动条会留下空白,我不喜欢它.我怎么能解决这个问题?

非常感谢你.

Den*_*nis 48

您可以尝试设置该contentInset表视图.在iOS 7中有一个topLayoutGuidebottomLayoutGuide(这是你想要的).里面的UITabBarControllerbottomLayoutGuide应该给你基本的底栏的高度.

tableView.contentInset = UIEdgeInsetsMake(0, 0, self.bottomLayoutGuide.length, 0);
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.

  • @jaytrixz它可能是0因为布局尚未发生.尝试更新控制器的viewDidLayoutSubviews方法中的contentInset. (8认同)
  • 你可能想避免在这里使用任何魔术数字.特别是当您支持设备旋转时.bottomLayoutGuide将始终反映您UITabBar的当前高度. (5认同)
  • 谢谢,tableView.contentInset = UIEdgeInsetsMake(0,0,49,0)有效! (4认同)
  • 当我记录它时,我的self.bottomLayoutGuide.length返回0.如何修复它?谢谢! (3认同)

Eri*_*rde 28

将半透明属性设置为 NO

// In init or viewDidLoad of tab bar controller
self.tabBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)

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

translucent物业适用于iOS 7及更高版本.

  • 看到这么多人建议将不透明的标签栏设置为半透明,这太令人沮丧了.你不明白OP问的问题吗? (4认同)