仅为一个tableView设置行高并忽略heightForRowAtIndexPath中的其他tableView?

时间:2015-09-02 17:41:06

标签: ios swift uitableview heightforrowatindexpath

我有一个带有一个TableView的TableViewController,它的动态设置为自动布局。

我已将另一个TableView添加到用于菜单的Controller中。它的行高需要设置为65.

问题是,在 heightForRowAtIndexPath 中。我知道如何为这个tableView菜单的行返回65。但是,我不确定如何让自动布局为其他tableView执行此操作。

有谁知道我怎么能做到这一点?

这是我的代码:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if tableView is YALContextMenuTableView {
        return 65
    } else {

    }
}

2 个答案:

答案 0 :(得分:6)

您可以super使用UITableViewController来实现此方法:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if tableView is YALContextMenuTableView {
        return 65
    } else {
        return super.tableView(tableView, heightForRowAtIndexPath:indexPath)
    }
}

答案 1 :(得分:2)

  • 不要使用tableView:heightForRowAtIndexPath:。为菜单tableView单元调整自动布局和自行调整大小,使其约束大小(到65)或

  • 继续使用tableView:heightForRowAtIndexPath:。为非菜单tableView单元格返回UITableViewAutomaticDimension的高度,这将让系统自行调整这些单元格的大小。

自行调整大小是首选方法,因为它与动态类型和自适应UI结合使用。