2011-11-17 55 views
0

我正在尝试使用Xcode 4.2故事板创建一些单元格,并使用Interface Builder创建自定义单元格。我创建的单元格很好,内部有一个按钮,当我按下按钮时,图像会发生变化,但它似乎不起作用。这是我的iPhone - UITableViewCell中的按钮不会更改图像

- (IBAction)sendToFavorites:(id)sender { 
    UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview]; 
    int row = [feedTableView indexPathForCell:cell].row; 
    NSLog(@"\"%@\" is FAVORITED", [[_allEntries objectAtIndex:row] articleTitle]); 
    if ([[_allEntries objectAtIndex:row] isFavorited]) { 
     NSLog(@"Unfavorite"); 
     [[_allEntries objectAtIndex:row] setFavorite:NO]; 
     [[sender imageView] setImage:[UIImage imageNamed:@"StarEmpty"]]; 
    } else { 
     NSLog(@"Favorite"); 
     [[_allEntries objectAtIndex:row] setFavorite:YES]; 
     [[sender imageView] setImage:[UIImage imageNamed:@"StarFilled"]]; 
    } 
} 

任何帮助,将不胜感激。

+0

你得到的日志(取消收藏/最喜欢的)? – sergio

+0

是的,所有NSLogs都应该打印。 –

+0

另外,在切换图像时,似乎只需要一秒钟就可以完成,但是会使用StarEmpty。我会因为在IB中将图像设置为StarEmpty吗? –

回答

0

想通了。

[sender setImage:[UIImage imageNamed:@"StarEmpty"] forState:UIControlStateNormal]; 

无法设置单打独斗,必须与状态设置,无论是突出,普通等

0

您可以尝试刷新表视图的内容。即,在设置与单元格关联的新图像后,在你的表格视图上调用reloadData

据我了解你的代码,你试图直接修改单元格内容。相反,这应该通过控制重绘表的dequeueReusableCellWithIdentifier机制来实现。所以,简单地说:修改你的数据源,并重绘表格。

希望这会有所帮助。

+0

,这不起作用,它甚至看起来不像UITableView完全改变。无论如何,我试图避免这种情况。 –