UITableView位于TabBar下

时间:2016-07-27 13:07:01

标签: ios objective-c swift uitableview cocoa-touch

我有自定义UITableView个自定义单元格(每个单元格高度为70px)。

我还有49px UITabBar,但它隐藏了tableView。

我已尝试将此行添加到TableView awakeFromNib方法,但它无法正常工作:

self.commentsTableView.contentInset = UIEdgeInsetsMake(0, 0, 49, 0)

我知道如何解决这个问题?

谢谢!

7 个答案:

答案 0 :(得分:1)

我不知道你到底做了什么,但试试这样:

self.edgesForExtendedLayout = UIRectEdgeAll;
self.tableview.contentInset = UIEdgeInsetsMake(0.0f, 0.0f, CGRectGetHeight(self.tabBarController.tabBar.frame), 0.0f);

我希望,这会奏效。

答案 1 :(得分:0)

这在Swift 3中为我做了诀窍。

if let tabBarController = tabBarController {
    self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, tabBarController.tabBar.frame.height, 0.0);
}

答案 2 :(得分:0)

试试这个

self.commentsTableView.contentInset = UIEdgeInsetsMake(49, 0, 0, 0)
self.commentsTableView.setContentOffset(CGPoint.init(x: 0, y: -49), animated: false)

答案 3 :(得分:0)

您应该使用以下代码配置相应的视图控制器以删除边缘扩展(默认为UIRectEdgeAll)

edgesForExtendedLayout = []

答案 4 :(得分:0)

在没有透明条的导航控制器中处理表格视图时,我遇到了这个问题。我执行了类似于以下的设置:

override func viewDidLoad() {
    super.viewDidLoad()

    // Without this there is some extra fast inertia when slowly
    // scrolling to the top.
    extendedLayoutIncludesOpaqueBars = true

    // Don't extend the tableview past the bottom bar, though.
    // If we do then a tab bar or bottom nav bar will block
    // content.
    edgesForExtendedLayout = [.top, .left, .right]
}

但是,我后来发现在层次结构中较高的情节提要中未选中几个复选框。具体来说,这两个:

Adjust scroll view insets

Under opaque bars

选中这两个复选框,就无需关心该视图控制器中的内容插图和布局扩展行为

答案 5 :(得分:0)

如果您在以前的视图控制器中更改了self.hidesBottomBarWhenPushed=true,请确保将其更改为self.hidesBottomBarWhenPushed=false内的override func prepare(for segue: UIStoryboardSegue, sender: Any?) {}

答案 6 :(得分:-1)

尝试使用tableView和TabBar的约束,如:

enter image description here