2013-12-13 87 views
-1

我該如何去添加幾個按鈕到tableview到每個單元格?我需要在我的tableview中爲每個單元格添加註釋和按鈕,並且每個按鈕都必須特定於被單擊的行。我該如何去做這樣的事情?我應將的將多個按鈕添加到IOS7桌面視圖

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

內的動作還是有以編程方式設置一個按鈕,從裏面的cellForRowAtIndexPath一個IBAction爲,讓我送參數的方法嗎?

+0

「iTunes U」或網絡上有大量關於如何使用Objective C和Cocoa Touch創建自定義的「UITableViewCell」和程序的教程。一個很好的開始(超越斯坦福大學iTunes U課程)是Ray Wenderlich的網站:http://www.raywenderlich.com –

+0

這不是問題,我很清楚如何創建自定義表格單元格,問題是獲取「objectAtIndex」傳遞到動作中,以便ik正在單擊哪個狀態。 – ChuckKelly

+0

問題的第一部分是「我將如何去添加幾個按鈕到每個單元格的tableview?'這是回答。第二部分我不完全理解,因爲它不是很清楚,但是我會讓'UITableViewCell'子類自己處理'IBAction'。如果您需要將數據發送回'UITableViewController',則可以使用委託。 –

回答

0

您可以創建自定義表格視圖單元格並添加多個按鈕。 1.使用xib 創建類UITableviewcell的子類2.在xib中刪除視圖並將一個tableview單元拖入xib 3.在xib中添加多個按鈕 4.爲每個按鈕創建IBOutlet。 5.在您的視圖控制器導入CustomTableViewCell和方法的cellForRowAtIndexPath添加每種方法操作和設置按鈕標記爲indexpath.row 6.找出點擊按鈕的indexpath從它的標籤

Refer this link

我覺得這是你問...

[cell.button1 addTarget:self action:@selector(button1Pressed:) forControlEvents:UIControlEventTouchUpInside];         In the 

接收機的方法,你可以得到發送者的標籤

-(void)button1Pressed:(id)sender{ 
    UIButton *button1 = (UIButton*)sender; 
    int selectedRow = sender.tag; 
} 
+0

This s close,but im loosing you when you say「and in CellForRowAtIndexPath method add action for each method and set button tag as indexpath.row 6」ik如何將按鈕鏈接到一個動作,但我不知道如何也讓該操作知道正在被點擊的行。一個片段將是非常有用的 – ChuckKelly

+0

我認爲這就是你要求的... [cell.button1 addTarget:self action:@selector(button1Pressed :) forControlEvents:UIControlEventTouchUpInside];在接收方法中,你可以得到發件人的標籤 - (void)button1Pressed:(id)sender {UIButton * button1 =(UIButton *)sender; int selectedRow = sender.tag;} – jailani

0

您需要繼承您的UITableViewCell,以便您可以根據需要對其進行自定義。

有很多關於此的教程。取決於你是否使用Storyboard。這裏有很多:http://zeroheroblog.com/ios/how-to-create-simple-tableview-with-custom-cells

+0

我意識到如何繼承細胞並創建自定義單元格,但它並沒有以任何明確的方式真正回答我的問題。我需要我連接的操作來知道點擊了哪些行,以便我可以從用於創建tableview的api響應中獲取正確的數據,以便我可以採取適當的措施 – ChuckKelly

+0

是的,這是正確的。你在你的單元格中創建2個按鈕,將它們連接到你的單元格子類中的一個動作,然後你可以看到選擇了哪一行。 – BalestraPatrick