UITableView位于TabBar下

问题描述 投票:1回答:6

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

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

我试图将此行添加到TableView awakeFromNib方法但它不起作用:

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

知道怎么解决这个问题?

谢谢!

ios objective-c swift uitableview cocoa-touch
6个回答
2
投票

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

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

我希望,这会奏效。


0
投票

这对我来说是Swift 3的诀窍。

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

0
投票

试试这个

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

0
投票

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

edgesForExtendedLayout = []

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

检查这两个框消除了需要关心该视图控制器中的内容插入和布局扩展行为


-1
投票

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.