如果未声明heightForRowAtIndexPath,则iOS 7.1会崩溃

时间:2015-03-10 08:05:00

标签: uitableview ios7 autolayout ios7.1

我试图通过AutoLayout使用estimatedHeightForRowAtIndexPath获得动态单元格高度,并在iOS8中按预期工作,但在iOS7.1中通过这样说来压缩:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MyProject.ViewController tableView:heightForRowAtIndexPath:]: unrecognized selector sent to instance 0x79e91350'

enter image description here

如果我定义heightForRowAtIndexPath,则错误消失但单元格不会自动调整大小。有什么想法吗?

更新:它确实可以在iOS 7.0中使用,对吧?

enter image description here

1 个答案:

答案 0 :(得分:6)

尝试:

 if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1 ){
    self.tableView.rowHeight =  UITableViewAutomaticDimension;
    self.tableView.estimatedRowHeight = 206;
}




 func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {



        if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1 {              
return UITableViewAutomaticDimension
            } else {return 206}
    }