2015-10-20 1 views
0

Хорошо, я уверен, что этот метод всегда выполнялся до сих пор для моего UITableViewController. У меня есть операторы печати в моем методе следующим образом:heightForRowAtIndexPath никогда не называется iOS9

- (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, 
} 

Я скопировал заголовок метода в мой файл .h, и правильно установить делегацию:

self.tableView.delegate = self; 
self.tableView.dataSource = self; 

viewDidLoad: в моем методе , Почему мой heightForRowAtIndexPath не звонит вообще?

+0

почему у вас оператор возврата в начале функции? – Fonix

+0

Ум, метод ошибок из-за отсутствия возврата, если он только в условных выражениях? – Chisx

+1

Операторы возврата сразу заканчивают функцию, поэтому код ниже ее никогда не будет выполняться – Fonix

ответ

1

Вам просто нужно переместить оператор возврата в верхней части функции в нижнюю часть или поместить его в другое как часть текущего оператора if, потому что оператор return немедленно завершает функцию, поэтому код ниже этого никогда не будет выполняться ,

1

Попробуйте как этот

EDITED

- (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; 
} 
+0

Это вернет '0', если ни одно из трех условий не будет истинным вместо желаемого' 475'. – rmaddy

+0

Надеюсь, что это вернет 475 :-) – Prakash

+0

Теперь вам просто нужно изменить 'height' как' CGFloat' вместо 'int'. – rmaddy

Смежные вопросы