2013-03-04 6 views
1

У меня возникли проблемы с UIImageView Я заходящий в Tableview: cellForRowAtIndexPath: по какой-то причине, когда UITableView загружает нижнюю половину ячейки с учетом дозы нет образа, загруженный в UIImageView, как и остальные UITableViewCells, однако, как только я прокручиваю его, он работает сам. Но как только это делается, верхний UItableViewCell затем сбрасывает изображение! пока я не прокручу это обратно в полный вид.UIImageView не загружается в UITableViewCell до прокручивается

Что я сделал, создается UITableViewCell в Interface Builder, и у меня есть пустой UIImageView, после чего я устанавливаю UIImage, который я собираюсь разместить внутри UIImageView в ViewDidLoad, а затем внутри tableview: CellForRowAtIndexPath: я установил его, затем вернул ячейку ,

Heres код

//.m 
- (void)viewDidLoad 
{ 
//.. 
storageCalcIconImage = [UIImage imageNamed:@"CALC.png"]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    SeriesSearchResultItem *myObj = [[SeriesSearchResultItem alloc] init]; 


    if (indexPath.section == 0) { 

     //call obj array with all of the values from my sorting algorithum 
     myObj = (SeriesSearchResultItem*)[dataArrayOfObjects objectAtIndex:indexPath.row]; 
//.. assinging storageCalcIconImage inside if statment 
firstSpaceImage.image = storageCalcIconImage; 
//.. 
} 
    return cell; 
} 

есть много происходит в Tableview: CellForRowAtIndexPath, но я решил бросить материал, который не был связан с проблемой изображения .. надеюсь, вы, ребята, можете увидеть ошибку, я делаю, что я havent еще ... любая помощь была бы весьма признательна.

ответ

0

Это ожидаемый результат использования многоразовых ячеек внутри tableView. Если вы хотите избежать этого поведения, вы должны создать ячейку для каждой строки таблицыView вместо использования dequeueReusableCellWithIdentifier. Ожидайте огромного влияния производительности, если у вас есть много строк для отображения.

+0

Как можно создать ячейку для каждой строки, если вы показываете динамическое количество tableviewcells и информацию для этих ячеек? – HurkNburkS

+0

Ваш tableView обычно отображает содержимое NSArray объектов. Когда вы меняете содержимое этого NSArray, вам просто нужно вызвать 'reloadData' в tableView для отображения обновленных данных. 'cellForRowAtIndexPath' находится здесь, чтобы указать вашему TableView, как отображать строку на определенном indexPath. – Kirualex

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