2012-02-20 4 views
3

У меня есть этот параметр ниже, но когда я касаюсь ячейки таблицы, я получаю предупреждение, поэтому я знаю, что метод вызывается, но изображение слева от ячейки не меняется , Это то, что мой код выглядит следующим образом: В контроллере представления у меня есть этот 2 метод:Изменение UIImage ячеек таблицы при касании

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath; 
{ 

    UITableViewCell *cell = nil; 

    cell = [tableView dequeueReusableCellWithIdentifier:@"homeworkcell"]; 

    if(cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"homeworkcell"]; 

    } 
    cell.textLabel.text = [tabledata objectAtIndex:indexPath.row]; 

    //static NSString *CellIdentifier = @"Cell"; 

     /* if (cell == nil) { 
     cell = [[UITableViewCell alloc] 
       initWithStyle:UITableViewCellStyleSubtitle 
       reuseIdentifier:CellIdentifier]; 
    }*/ 

    // Configure the cell. 
    //----------------------------------START----------------------Set image of cell---- 
    cellImage = [UIImage imageNamed:@"checkboxblank.png"]; 

    cell.imageView.image = cellImage; 

    //-------------------------------END---------------------------end set image of cell-- 

    return cell; 

} 

cellImage объявлен в .h и я синтезированный его, а в этом ом

прямо ниже выше метод, у меня есть один (я изменить изображение в нижней части:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    NSString *cellselected = [NSString stringWithFormat:@"cell selected %@", [tabledata objectAtIndex:indexPath.row]]; 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert" message:cellselected delegate:self cancelButtonTitle:@"close" otherButtonTitles:nil]; 

    [alert show]; 
    //------------------------------------------------------------------------------start 
    cellImage = [UIImage imageNamed:@"checkboxfull.png"]; 
    //----------------------------------------------------------------------------end 

} 

нужна вся помощь, которую я могу получить, спасибо

+0

вы пытались ссылаться на образ UIImageView напрямую? "cell.imageView.image = [UIImage imageNamed: @" checkboxfull.png "];" Я не уверен, но, возможно, «cell.imageView.image = cellImage;» берет копию UIImage, поскольку она в любом случае еще не загружена в память. – Markus

ответ

3
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 

    NSString *cellselected = [NSString stringWithFormat:@"cell selected %@", [tabledata objectAtIndex:indexPath.row]]; 
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"alert" message:cellselected delegate:self cancelButtonTitle:@"close" otherButtonTitles:nil]; 

    [alert show]; 
    [alert release]; 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    cell.imageView.image = [UIImage imageNamed:@"checkboxfull.png"]; 
} 
+0

потрясающий! Большое спасибо, LOL !! Я так рад. Теперь, как бы я снова нажал, чтобы изменить его на другое изображение? – user1191343

+0

check 'if ([cell.imageView.image isEqual: [UIImage imageNamed: @" checkboxfull.png "]])' change to other one .... else change to other – Shubhank

+0

Человек, спасибо вам большое. Я чувствую себя потрясающе, чтобы работать, спасибо вам большое. – user1191343

1

Вы забыли изменить ImageView:

cellImage = [UIImage imageNamed:@"checkboxfull.png"]; 
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
cell.imageView.image = cellImage; 
+0

Спасибо, вы оба в значительной степени дали тот же ответ. – user1191343