David Henry
David Henry

Reputation: 3062

TableView Content behind TabBar

I've searched through Stack Overflow and can't find a fix for the TableView being behind my TabBar.

I set up my TableView like this:

func setUpTableView() {
        messagesTableView.frame = view.frame
        messagesTableView.backgroundColor = .white
        view.addSubview(messagesTableView)
        messagesTableView.tableFooterView = UIView()
        messagesTableView.delegate = self
        messagesTableView.dataSource = self
        messagesTableView.register(UITableViewCell.self, forCellReuseIdentifier: messagesCellIdentifier)
        edgesForExtendedLayout = []
        extendedLayoutIncludesOpaqueBars = false
        messagesTableView.contentInsetAdjustmentBehavior = .never
    }

Then I setUpTableView() in viewDidLoad().

According to all sources

Should satisfy the content insets and not allow the TableView to scroll behind the TabBar.

Please note my TabBars' translucency is set to false inside TabBarController.

tabBar.isTranslucent = false

Adding Illustration

enter image description here

When scrolling to the bottom is not showing the complete TableView content as the TabBar covers the last few indexes.

Upvotes: 1

Views: 1056

Answers (1)

r3dm4n
r3dm4n

Reputation: 1225

Did you try this in viewDidAppear ?

  override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
    }

Edit

Remove

messagesTableView.frame = view.frame 

and add autoLayout to your messagesTableView

  messagesTableView.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activate([
        messagesTableView.topAnchor.constraint(equalTo: topAnchor),
        messagesTableView.leftAnchor.constraint(equalTo: leftAnchor),
        messagesTableView.bottomAnchor.constraint(equalTo: bottomAnchor),
        messagesTableView.rightAnchor.constraint(equalTo: rightAnchor)
        ])

Upvotes: 1

Related Questions