2011-10-02 37 views
0

我是相當新的論壇和id愛一些援助。我有一個表格視圖,並且能夠通過單獨頁面上的不同按鈕向其添加單元格。我想讓每個按鈕添加一個新的單元格,但使用不同的圖像。舉個例子。按鈕1將添加一個單元格,並且名爲@"button1.png"的圖像按鈕2將添加一個名爲@"button2.png"的圖像的單元格等。但即時通訊無法將圖像添加到單元格。我可以在cellForRow中完成,但不能用按鈕方法。有人可以幫我嗎?我在按鈕嘗試這樣做:Table view中的不同圖像View?

編輯用於補充細胞和圖像 按鈕:

- (IBAction)outlet1:(id)sender { 
[cart.cells addObject:@"1"]; 
[cart.cell.imageView setImage:[UIImage imageNamed:@"paddle1.png"]]; 
} 

cellForRow

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

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) 
{ 
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  
reuseIdentifier:CellIdentifier]; 
} 
//cell.imageView.image = [UIImage imageNamed:@"paddle1.png"]; 
[myTableView reloadRowsAtIndexPaths:indexPath.row 
withRowAnimation:UITableViewRowAnimationNone]; 

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

回答

0

的UITableView呈現的方式是,它要求一個行的單元格,當它要呈現該行時,生成它需要的像素,然後忘記單元格。由於單元格的大多數結構在行與行之間不會發生變化,因此可以重新使用同一個單元對象來呈現多行,並且只需(例如)更改標籤文本或imageView的圖像。

因此,在渲染行後更改單元格不會更改該行的外觀。你需要告訴表重新渲染該行:

[myTable reloadRowsAtIndexPaths:indexPathArray withRowAnimation:foo]; 

這將導致操作系統調用的tableView的數據源代表cellForRowAtIndexPath:消息,然後需要創建和/或修改一個單元格,然後把它渲染。

單元格不是行。單元格是用於呈現行的對象。

+0

好的,所以當這個方法被調用時,它會重新加載表的行,它會允許我添加新的圖像到tableview行?另外我應該用foo代替什麼?非常感謝答覆安德魯! :) – iProRage

+0

使用indexPathArray調用該方法,該方法包括要更改的行的索引路徑。至於'foo',請選擇您想要的行動畫,例如,如果您只是想立即重畫UITableViewRowAnimationNone。查看此消息的文檔以獲取更多信息。 – AndrewS

+0

好吧,所以我把這個代碼放在cellForRow中:'[myTableView reloadRowsAtIndexPaths:indexPath.row withRowAnimation:UITableViewRowAnimationNone];'它仍然不允許添加圖片。如果我添加多個單元格,然後嘗試去tableView頁面,應用程序崩潰。在這裏,你可以閱讀我的代碼,在我的問題中解決它並顯示我現在擁有的。非常感謝所有的幫助! – iProRage

0

如果我明白這個問題,你想要一個購物車對象在一個表格單元中顯示它的圖片。如果這是真的,那麼爲什麼不將UIImage視圖添加到購物車對象。在合適的時間(用戶選擇對象的地方)將項目的圖像存儲到對象的UIImage視圖中。然後,當您將購物車對象設置到您的表格中時,您會有對象名稱(大概是),並且它是圖像在您的對象中,然後您可以輕鬆地將單元格的圖像設置爲您的對象圖像。不要嘗試在「cellForRowAtIndexPath」方法中顯示哪個圖像的邏輯。將圖像和所有屬性與對象一起存儲,並使用objectAtIndex指向您的完整對象,並根據對象屬性設置您的單元格。

+0

嘿,非常感謝您的回覆!購物車對象只是一個類的副本。至於在適當的時候添加圖像,我的代碼不會在上面工作?我有用戶按下一個按鈕,然後它添加它,然後當它添加單元格/行?你一直在說購物車對象。這是什麼意思?你認爲購物車是什麼?因爲,即時通訊不知道該怎麼說,但購物車只是接受不同的課程 – iProRage

+0

你是否明白這一點? – BPratt

+0

是的,我確定,我只是將圖像添加到像單元格文本的數組。它工作完美!謝謝您的幫助! – iProRage