2013-05-19 69 views
0

我有一個填充的TableView,我想更改圖像。當我在裏面的cellForRowAtIndexPath我可以通過改變它:從void更改表中的特定行

cell.imageView.image = [UIImage imageNamed:@"image.png"]; 

但我無法弄清楚如何做空洞內同樣的事情,我曾嘗試:

[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:0]].imageView.image = [UIImage imageNamed:@"image.png"]; 

但它不」根本不改變圖像。

謝謝, /DSDeniso

編輯:

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

if (cell == nil) 
{ 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 
_row = indexPath.row; 
[self changeImage]; 
} 

- (void)changeImage{ 
UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:_row inSection:0]]; 
if(cell) 
{ 
cell.imageView.image = [UIImage imageNamed:@"image.png"]; 

} else { 
NSLog(@"why is cell null? Did I set row properly?"); 
} 
} 
+0

當我的空洞內,我沒有看到或感覺到任何東西。您的視圖控制器中的哪個*方法*正在嘗試修改您的圖像? –

+0

自定義名爲changeImage :-) – Deni

回答

1

細胞只是傳遞給方法

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

    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 
    _row = indexPath.row; 
    [self changeImageForCell:cell]; 
    } 

    - (void)changeImageForCell:(UITableViewCell*)cell{ 
    cell.imageView.image = [UIImage imageNamed:@"image.png"]; 
    } 
+0

這當然是解決它的一種方法... –

+0

最簡單最性感:p – yunas

+0

謝謝,但請參閱下面的我和Michaels討論:-) – Deni