获取UITableView单元格高度

时间:2015-03-10 00:17:54

标签: ios uitableview swift

我有一个UIViewController同时实现了UITableViewDelegateUITableViewDataSource,我希望将屏幕稍微向下滚动(从第二个单元格开始)。在这种情况下,我尝试使用硬编码高度将tableView.contentOffset设置为CGPointMake,这与我在我的单元格的Storyboard中设置的值相同。

但是,我想动态读取高度。在我的表视图中,每个单元格都具有相同的大小,如果在我的控制器中我有UITableView实例,我怎样才能得到它的高度?

这是我的代码:

@IBOutlet var tableView: UITableView!

override func viewDidLoad() {
    // Here instead of 88.0 I wanted something like tableView.cellHeight.
    // Is there something like it? Anyone?

    tableView.contentOffset = CGPointMake(0.0, 88.0)
}

2 个答案:

答案 0 :(得分:3)

您正在寻找的属性称为rowHeight。所以要求tableView.rowHeight

以下是UITableView文档:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/#//apple_ref/occ/instp/UITableView/rowHeight

他们在这些情况下非常有用。

然而,我并不相信这是你真正需要的;这取决于你的意思"我想稍微向下滚动屏幕。"

答案 1 :(得分:0)

如果您使用静态UITableView单元格:

 var height = tableView.rowHeight

如果您有动态单元格,则必须使用indexPath从UITableViewDelegate获取动态单元格,在您的情况下,使用UIViewController

var indexPath = NSIndexPath(row: yourRow, section: yourSection)
var height = tableView(tableView, heightForRowAtIndexPath: indexPath)

如果您设置了estimatedRowHeight,您还可以检查该变量(但如果您没有,则会为零):

var height = tableView.estimatedRowHeight