当我的MSMessagesAppViewController将presentationStyle从compact更改为expanded并重新更改为compact时,UITableView的滚动变得混乱。

我正在使用AutoLayout在名为UITableView的视图内设置contentView

// Inside MSMessagesAppViewController
func createTableView() {
    let tableViewController = MyTableViewController()
    self.addChildViewController(tableViewController)

    tableViewController.tableView.backgroundColor = UIColor.clear
    tableViewController.tableView.translatesAutoresizingMaskIntoConstraints = false

    self.contentView.addSubview(tableViewController.tableView)

    NSLayoutConstraint.activate([
        tableViewController.tableView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 0),
        tableViewController.tableView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 0),
        tableViewController.tableView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: 0),
        tableViewController.tableView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0)
        ])
}


展开和折叠MSMessagesAppViewController之后,我可以突然滚动过去tableView中的最后一个单元格...

初始状态下一切正常。我注意到,滚动条在启动时可见,但是在更改大小后不存在...

这是我在控制器中设置tableView的方式:

// Inside MyTableViewController
func setupTableView() {
    tableView.dataSource = self
    tableView.register(QuickStandardTableViewCell.self, forCellReuseIdentifier: "standardCell")

    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 64

    tableView.translatesAutoresizingMaskIntoConstraints = false
    tableView.separatorColor = .clear

    tableView.sectionHeaderHeight = UITableViewAutomaticDimension;
    tableView.estimatedSectionHeaderHeight = 8.0

    self.extendedLayoutIncludesOpaqueBars = false
}


我检查了什么:


contentView框架正确更改
tableView框架正确更改
contentInset不变
contentSize不变


有人知道我在想什么吗?

ios - MSMessagesAppViewController弄乱了UITableViewController滚动-LMLPHP

ios - MSMessagesAppViewController弄乱了UITableViewController滚动-LMLPHP

提前致谢!

最佳答案

尝试使用内部带有UIViewControllerUITableView而不是使用UITableViewController

我在使用UICollectionViewController时遇到了同样的问题,切换到UIViewController可以解决此问题。

关于ios - MSMessagesAppViewController弄乱了UITableViewController滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49223657/

10-14 20:36
查看更多