커스텀으로 셀을 구성후 각각 셀마다 버튼을 눌러 그셀의 IndexPath를 전달&출력하는 방법
먼저 cell에 버튼셀렉터를 구현한다.
[cell.selectButton addTarget:self action:@selector(selectButtonPush:) forControlEvents:UIControlEventTouchUpInside];
그후 selectButtonPush메서드로 가서 다음의 코드를 입력한다.
customCell * cell = (customCell *)[[sender superview] superview]; NSIndexPath *indexPath = [_tableView indexPathForCell:cell];
그리고 로그를 출력 하면 내가 누른 셀의 로우값을 알아낼수 있고 그해당 셀에대해 명령을 할수 있다
다음은 섹션을 커스텀 하여 버튼을 만들었을때에 처리하는 방법이다.
먼저 TableView section 에 버튼을 만든다
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIView *sectionView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 360, 27)]; [sectionView setBackgroundColor:[UIColor colorWithRed:0.821 green:0.846 blue:0.946alpha:1.000]]; UIButton *sectionButton = [UIButton buttonWithType:UIButtonTypeCustom]; [sectionButton setFrame:CGRectMake(40, 0, 40, 27)]; [sectionButton addTarget:self action:@selector(sectionButtonPush:)forControlEvents:UIControlEventTouchUpInside]; [sectionButton setTag:section]; [sectionView addSubview:sectionButton]; return sectionView; }
그다음 해당버튼의 셀렉터에서 다음과 같은 코드를 입력한다.
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:[sender tag]]; customCell * cell = [_tableView cellForRowAtIndexPath:indexPath];
이외에도 여러가지 방법을 통해 알아낼수 있다.
UIView *contentView = (UIView *)[sender superview]; customCell *cell = (customCell *)[contentView superview]; NSIndexPath *indexPath = [_tableView indexPathForCell:cell];
또는
CGPoint touchPoint = [sender convertPoint:CGPointZero toView:_tableView]; NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:touchPoint]; customCell *cell = [_tableView cellForRowAtIndexPath:indexPath];
이상 전달끝
'IT > iOS' 카테고리의 다른 글
UIWebView의 로드된 웹페이지에 JavaScript 소스 넣기 또는 수정, 삭제 하기(target:'_blank') (0) | 2014.04.18 |
---|---|
UIWebView bounce 비활성화 하기 (0) | 2014.04.18 |
Core Data Attributes수정 및 추가 할때 순서 (0) | 2014.04.18 |
Xcode - Profile의 leaks을 파헤쳐보자 (0) | 2014.03.23 |
NSDate 특정날짜와 현재날짜 비교 (0) | 2014.03.23 |