将隐藏信息添加到UITableViewCell

时间:2014-02-07 20:36:00

标签: ios objective-c cocoa-touch uitableview

代码中是否有办法向UITableViewCell添加一些隐藏信息?

用例:

  • 在活动供稿中,调用(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath,每个单元格都有一个活动。每个都有自己独特的“activityId”。
  • 每个单元格中都有一些按钮(带有唯一标签),按下时,给定的活动是“喜欢”
  • 每个按钮都有一个IBOutlet,然后调用模型然后处理类似的

我对IBOutlet的代码是:

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

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

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

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

2 个答案:

答案 0 :(得分:6)

听起来你需要创建一个自定义的UITableViewCell类,如果你想在你的单元格中做更复杂的事情,那么标准的允许 - https://developer.apple.com/library/ios/documentation/userexperience/conceptual/tableview_iphone/TableViewCells/TableViewCells.html

答案 1 :(得分:0)

你不应该superview shuffle[[btn superview] superview],因为它迟早会破裂。

我同意@ansible你应该创建一个自定义单元格并使用委托关系,这样按钮就会告诉单元格它被点击,单元格告诉委托。这是最好和最合适的解决方案。

但是,对于作弊者,请考虑使用按钮上的objc_setAssociatedObject将ID信息与其关联,以便您可以在操作方法中访问它。