2014-10-11 3 views
0

나는 사용자 정의 TableView 셀을 가지고 있으며 버튼이있다. 테이블보기에는 동일한 사용자 지정 셀을 사용하는 행이 여러 개 있습니다. 이제 셀 중 하나의 버튼이 눌려 졌을 때. 버튼이있는 셀의 행을 알고 싶습니다.TableView 셀의 단추를 눌렀을 때 셀의 어떤 행의 단추를 눌렀는지 어떻게 알 수 있습니까?

+0

버튼의 태그 속성을 행 인덱스로 설정할 수 있습니다. – 0x141E

+0

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

답변

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

질문자가 행 번호가 필요하지 않음 버튼 색인, 그냥 대답을 수정 –

+0

만약 내가 커스텀 셀을 만들고 코드에서 버튼 태그를 설정하면, 셀의 다른 행에있는 버튼 태그는 같은 버튼 태그를 가지고 있습니까? – leizh007

+0

다를 수 있습니다. 어떤 버튼을 클릭할지 결정할 때 사용합니다. – Leo

-2

당신은 사용자 정의 속성을 정의 할 수 있습니다 당신은 아래와 같이 사용할 수 있습니다 : - 아래

objc_setAssociatedObject(yourButton,kCustomProperty , yourCellIndexPath, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 

같은

#define kCustomProperty @"CustomProperty" 

준 그 사용자 지정 속성을 가진 개체를 사용하여 데이터를 가져옵니다 아래의 같은 속성과 대상

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

태그를 사용하지 않으려는 경우이를 코딩하여 만들 수있는 일종의 맞춤 속성입니다.

관련 문제