如何设置第一个UITableViewCell的高度高于其他UITableViewCell?

时间:2017-09-11 06:20:20

标签: ios swift uitableview

我在viewDidLoad()

中尝试此操作
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == 0 {
        return 300.0
    }
    return 100.0
}

但这没效果

2 个答案:

答案 0 :(得分:1)

在Swift 3中以下列方式编写代码 行的高度是一个tableView委托方法,所以你这样做。不写在ViewDidLoad方法里面,你可以写在viewDidLoad方法之外

导入UIKit

class ProfileViewController: UIViewController,ProfileViewControllerDelegate {

    //MARK: - Outlet -

    @IBOutlet weak var tblView: UITableView!

    //MARK: - View Life Cycle -
    override func viewDidLoad() {

    }

    //MARK: TablView Delegate
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        if indexPath.row == 0 {
            return 300.0
        }
        return 100.0

}

答案 1 :(得分:0)

这是简单tableView的示例,第一行高度为300,其他为100。

    import UIKit
    class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet var tableView: UITableView!

        override func viewDidLoad() {
            super.viewDidLoad()
            tableView.delegate = self
            tableView.dataSource = self
        }


        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return 5
        }


        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


            let cell:UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "CellID") as UITableViewCell!


            cell.textLabel?.text = "testing"

            return cell
        }

        // method to run when table view cell is tapped
        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            print("You tapped cell number \(indexPath.row).")
        }


func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == 0 {
        return 300.0
    }
    return 100.0
}

}