swift:将viewController添加到viewController后,tableView高度不适合屏幕

时间:2018-04-04 14:24:01

标签: swift uitableview uinavigationcontroller

将此代码添加到didFinishLaunchingWithOptions函数中的appDelegate之后:

self.window = UIWindow(frame: UIScreen.main.bounds)
let mainView = PageViewController(coder: NSCoder()) 
let nav1 = UINavigationController(rootViewController: mainView!)
nav1.navigationBar.isTranslucent = false
self.window!.rootViewController = nav1
self.window?.makeKeyAndVisible()

tableView高度看起来不太好,tableView(单元格)的某些部分不适合屏幕

我实现tableView的代码:

let myTableView = UITableView(frame: CGRect(x: 0, y: 40, width: screenSize.width, height: screenSize.height-40))
myTableView.bounces = false
myTableView.tableFooterView = UIView()
myTableView.register(UITableViewCell.self, forCellReuseIdentifier: "cellID")
myTableView.register(MyTableViewCell.self, forCellReuseIdentifier: "cellID2")
myTableView.dataSource = self
myTableView.delegate = self

为了在屏幕中显示tableView的所有部分,我必须将代码上面的第一行更改为:

let myTableView = UITableView(frame: CGRect(x: 0, y: 40, width: screenSize.width, height: screenSize.height-90))

为什么会发生这种情况,我该怎么做才能解决这个问题,谢谢

1 个答案:

答案 0 :(得分:1)

尝试这样的事情但不要忘记在设置锚点之前将myTableView添加为子视图:

            myTableView.translatesAutoresizingMaskIntoConstraints = false
            myTableView.leftAnchor.constraint(equalTo: myTableView.superview!.leftAnchor).isActive = true
            myTableView.rightAnchor.constraint(equalTo: myTableView.superview!.rightAnchor).isActive = true
            myTableView.topAnchor.constraint(equalTo: myTableView.superview!.topAnchor).isActive = true
            myTableView.bottomAnchor.constraint(equalTo: myTableView.superview!.bottomAnchor).isActive = true