2014-10-11 107 views
0

我有一個自定義TableView單元格,並在那裏有一個按鈕。 表視圖有許多行使用相同的自定義單元格。 現在如果其中一個單元格的按鈕被按下。我想知道按鈕在哪一行的單元格? (1)當按下TableView單元格中的按鈕時,我怎麼知道按下了哪一行單元格按鈕?

+0

您可以將按鈕的標籤屬性設置爲行索引。 – 0x141E 2014-10-11 07:45:55

+0

http://stackoverflow.com/questions/11936126/how-to-pass-uitableview-indexpath-to-uibutton-selector-by-parameters-in-ios/11936294#11936294 – TheTiger 2014-12-17 11:43:37

回答

3

(1)。在這種方法cellForRowAtIndexPath:,分配按鈕與tag。 例如:

cell.yourbutton.tag = indexPath.row; 

(2)。使用相同的選擇器添加動作按鈕

[cell.yourbutton addTarget:self action:@selector(cellButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; 

(3)。然後

-(void)cellButtonClicked:(UIButton*)sender 
{ 
    NSIndexPath *path = [NSIndexPath indexPathForRow:sender.tag inSection:0]; 
} 
+0

提問者需要行號而不是按鈕索引,只是修改你的答案 – 2014-10-11 07:47:57

+0

如果我做一個custome單元格,並在代碼中設置按鈕標記,單元格的不同行中的按鈕標記是否具有相同的按鈕標記或不同? – leizh007 2014-10-11 08:28:27

+0

應該不同。您可以使用它來確定單擊哪個按鈕。 – Leo 2014-10-11 08:43:16

-2

您可以定義自定義屬性,你可以用它象下面這樣: -

#define kCustomProperty @"CustomProperty" 

助理與自定義屬性的對象像下面

objc_setAssociatedObject(yourButton,kCustomProperty , yourCellIndexPath, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 

使用讓您的數據像下面一樣的屬性和對象

NSIndexPath *yourCellIndexPath = (NSIndexPath *)objc_getAssociatedObject(yourButton, kCustomProperty); 

如果您不想使用標籤,則可以通過編碼創建一種自定義屬性。

相關問題