我在表视图中按钮的大小有奇怪的问题。我有4个单元格的表视图。每个单元格的大小都是屏幕大小的三分之一(减去导航栏)。 Top and button of table view
如果我向下滚动并点击第四个按钮(第二个,第三个,它并不重要,因为第一个按钮不可见)我将转移到其他VC。然后,如果我移动到iOS主屏幕,再次启动我的应用程序并返回到表视图,我将看到表视图未完全向下滚动。这不是最大的问题,因为如果我向上滚动到表格视图的顶部,我会看到第一个按钮更长。怎么解决?我添加了限制。 Issue with table view and normal table view
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
// get the height for the current view
let viewHeight = self.view.frame.height
// since we want 3 rows to appear at a time, simply divide the viewHeight by 3
return viewHeight / 3
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// if the steps are selected, use those cell identifiers and configure them
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell1") as! ButtonTableViewCell
cell.buttonVC.backgroundColor = UIColor.blue
return cell
} else if indexPath.row == 1 {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell2") as! ButtonTableViewCell
cell.buttonVC.backgroundColor = UIColor.green
return cell
} else if indexPath.row == 2 {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell3") as! ButtonTableViewCell
cell.buttonVC.backgroundColor = UIColor.brown
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell4") as! ButtonTableViewCell
cell.buttonVC.backgroundColor = UIColor.yellow
cell.selectionStyle = .none
return cell
}
}
答案 0 :(得分:0)
通过更改viewHeight
解决了我的问题let viewHeight = UIScreen.main.bounds.size.height - (self.navigationController?.navigationBar.frame.size.height)! - UIApplication.shared.statusBarFrame.height
答案 1 :(得分:0)
您需要获取TableView的高度而不是self.view height
let viewHeight = tableView.frame.size.height