2014-02-07 2 views
0

숨겨진 정보를 UITableViewCell에 추가하는 코드가 있습니까?UITableViewCell에 숨겨진 정보 추가

사용 케이스 : 활동 피드에서

  • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 호출 및 각 셀은 하나 개의 활동을 가지고 있습니다. 각 고유 한 "activityId".
  • 각 셀은 그 몇 가지 버튼이 있습니다 (고유의 태그) 및 누르면, 주어진 활동은 "좋아"입니다
  • 각 버튼은 다음과 같은
을 처리하기 위해 모델을 부를 것이다 함께 IBOutlet을 가지고 나는 함께 IBOutlet 위해 가지고

코드는 다음과 같습니다 당신이 당신의 세포에서 더 복잡한 일을 수행하려는 경우 사용자 정의있는 UITableViewCell 클래스를 만들 필요가 같은

- (IBAction)buttonUp:(UIButton *)sender { 

UIButton *btn = (UIButton *) sender; 
UITableViewCell *cell = (UITableViewCell *) [[btn superview] superview]; 

UIView *cellView = [cell.contentView viewWithTag: ..myUniqueButtonTag.. ]; 

NSLog(@"activityId is: %@", ...); 
} 
+0

cell.accessibilityValue를 사용하고 데이터를 할당합니다. 클릭하면 해당 셀과 해당 accessibilityValue를 찾습니다. –

답변

6
+0

유일하게 필요한 것은 activityId입니다. 정말 새로운 서브 클래스가 필요합니까? –

+0

ID가 NSNumber 인 경우 태그 속성을 사용할 수 있습니다. 그러나 UITableViewCell을 서브 클래 싱하는 것은 속성을 추가하기 만하면됩니다. 그리고 앞으로 할 일을 확장하려는 경우 나중에 하위 클래스를 갖는 것이 유용 할 수 있습니다. – ansible

+0

내가 원할 것입니다. (사실, 실제로 필요합니다). 그래서, 이것은 행동의 가장 좋은 코스 인 것 같습니다. 머리 꼭대기에서 내가 설정해야 할 큰 함정을 알고 있습니까? 편집 : 제한 시간이 지난 후에이 대답을 받아 들일 것입니다. –

0

조만간 깨지기 때문에 superview shuffle : [[btn superview] superview]을 사용하면 안됩니다.

사용자 지정 셀을 만들고 대리자 관계를 사용하여 단추가 셀에 지시하고 셀에서 대리인에게 알려야하므로 @ansible에 동의합니다. 이것이 가장 적절하고 가장 적절한 해결책입니다.

그러나 사기꾼의 경우에는 버튼에 objc_setAssociatedObject을 사용하여 ID 정보를 연결하여 작업 방법에서 액세스 할 수 있도록하십시오.

+0

나는 계속 셀을 만들었지 만 버튼을 누르면'[[btn superview] superview] superview]'에 의존하여 맞춤 셀의 클래스. 첫 문장에 관해서는 더 좋은 방법이 있습니까? –

+0

셀을 버튼 메서드의 대상으로 설정하고 액션을 전달하십시오. – Wain

관련 문제