heightForRowAtIndexPath 从未被调用 iOS9
heightForRowAtIndexPath never being called iOS9
好吧,我很确定这个方法一直在为我的 UITableViewController
执行到现在。我的方法中有这样的打印语句:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//455(PERFECT MIN HEIGHT) 475 is perfect spacing. 15.5 is the scalar for when descriptionLabel expands lines
return 475;
NSLog(@"ISSSS ITTT ONNNN???");
if (currentDescriptionHeight == 16.0) {
NSLog(@"OHHH so it triggered 1111");
return 475;
}else if (currentDescriptionHeight == 31.5){
NSLog(@"OHHH so it triggered 2222");
return 490.5;
}else if (currentDescriptionHeight == 47){
NSLog(@"OHHH so it triggered 3333");
return 506;
}
//475 - 1 line description,
}
我已将方法 header 复制到我的 .h 文件中,并已正确设置委托:
self.tableView.delegate = self;
self.tableView.dataSource = self;
在我的 viewDidLoad:
方法中。为什么我的 heightForRowAtIndexPath
根本没有被调用?
你只需要将函数顶部的return语句移动到底部或将其作为当前if语句的一部分放在else中,因为return语句结束了函数立即所以它下面的代码永远不会执行。
这样试试
已编辑
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height = 475;
NSLog(@"ISSSS ITTT ONNNN???");
if (currentDescriptionHeight == 16.0) {
NSLog(@"OHHH so it triggered 1111");
height = 475;
}else if (currentDescriptionHeight == 31.5){
NSLog(@"OHHH so it triggered 2222");
height = 490.5;
}else if (currentDescriptionHeight == 47){
NSLog(@"OHHH so it triggered 3333");
height = 506;
}
return height;
}
好吧,我很确定这个方法一直在为我的 UITableViewController
执行到现在。我的方法中有这样的打印语句:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//455(PERFECT MIN HEIGHT) 475 is perfect spacing. 15.5 is the scalar for when descriptionLabel expands lines
return 475;
NSLog(@"ISSSS ITTT ONNNN???");
if (currentDescriptionHeight == 16.0) {
NSLog(@"OHHH so it triggered 1111");
return 475;
}else if (currentDescriptionHeight == 31.5){
NSLog(@"OHHH so it triggered 2222");
return 490.5;
}else if (currentDescriptionHeight == 47){
NSLog(@"OHHH so it triggered 3333");
return 506;
}
//475 - 1 line description,
}
我已将方法 header 复制到我的 .h 文件中,并已正确设置委托:
self.tableView.delegate = self;
self.tableView.dataSource = self;
在我的 viewDidLoad:
方法中。为什么我的 heightForRowAtIndexPath
根本没有被调用?
你只需要将函数顶部的return语句移动到底部或将其作为当前if语句的一部分放在else中,因为return语句结束了函数立即所以它下面的代码永远不会执行。
这样试试
已编辑
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height = 475;
NSLog(@"ISSSS ITTT ONNNN???");
if (currentDescriptionHeight == 16.0) {
NSLog(@"OHHH so it triggered 1111");
height = 475;
}else if (currentDescriptionHeight == 31.5){
NSLog(@"OHHH so it triggered 2222");
height = 490.5;
}else if (currentDescriptionHeight == 47){
NSLog(@"OHHH so it triggered 3333");
height = 506;
}
return height;
}