繁体   English   中英

Xcode UITableView 的莫名行为

[英]Inexplicable behavior of Xcode UITableView

有一个带有 TableView 的简单应用程序,在代码中我创建了一个 FooterView(里面有一个按钮)和一个 HeaderView(里面有一个 UICollectionView)。 使用选定的模拟器 Iphone 11,12, X - 一切正常,FooterView 和 HeaderView 的大小与给定的匹配。 但是如果我 select IphoneSE - 尺寸 go 误入歧途,FooterView 完全消失,HeaderView 变得微观。 请帮忙

  • 这是页脚配置
private func configureUITableViewFooter(){
    let footerView = UINib(nibName: "FooterView",
                           bundle: .main).instantiate(withOwner: nil, options: nil).first as! FooterView
    footerView.delegate = self
    footerView.frame = CGRect(x: 0, y: 0, width:self.view.bounds.width, height: 200)
    OrderTableView.tableFooterView = footerView
    
}
  • 这是 header 配置
    private func configureUITableViewHeader() {
        let headerView  = UINib(nibName: "HeaderView", bundle: nil).instantiate(withOwner: nil, options: nil).first as! HeaderView
        headerView.delegate = self
        headerView.dataForHeaderCollectionViewCell = selectedObject
        headerView.configureView()
        headerView.frame = CGRect(x: 0, y: 0, width:self.view.bounds.width, height: self.view.frame.height/3)
        OrderTableView.tableHeaderView = headerView
    }
  • 这是 viewDidLoad
    override func viewDidLoad() {
            super.viewDidLoad()
            OrderTableView.register(UINib(nibName: "OrderTableViewCell", bundle: nil), forCellReuseIdentifier: "OrderTableViewCell")
            self.viewModel = ViewModel(data: selectedObject!)
            configureNavigationController()
            configureUITableViewHeader()
            configureUITableViewFooter()
        }

小伙伴们,你们觉得是怎么回事?

这是因为在您的 storyboard 或 viewController 的 xib 文件中显示为 iphone 12 的大小。在 viewDidLoad 中,tableView 大小以 iphone 12 中的大小加载,因此在 iphone 12 或其他具有相同大小的设备中它们显示正确,并且在 iphone SE 中,它们显示不正确。 当 tableView 大小正确时,尝试设置 header 和页脚,例如可能在 ViewDidAppear

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM