当我的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不变
有人知道我在想什么吗?
提前致谢!
最佳答案
尝试使用内部带有UIViewController
的UITableView
而不是使用UITableViewController
。
我在使用UICollectionViewController
时遇到了同样的问题,切换到UIViewController
可以解决此问题。
关于ios - MSMessagesAppViewController弄乱了UITableViewController滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49223657/