在桌面视图中按钮的图像变长

时间:2017-04-20 11:24:21

标签: ios swift uitableview

我在表视图中按钮的大小有奇怪的问题。我有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
    }
}

2 个答案:

答案 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