代码中是否有办法向UITableViewCell添加一些隐藏信息?
用例:
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
,每个单元格都有一个活动。每个都有自己独特的“activityId”。我对IBOutlet的代码是:
- (IBAction)buttonUp:(UIButton *)sender {
UIButton *btn = (UIButton *) sender;
UITableViewCell *cell = (UITableViewCell *) [[btn superview] superview];
UIView *cellView = [cell.contentView viewWithTag: ..myUniqueButtonTag.. ];
NSLog(@"activityId is: %@", ...);
}
答案 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信息与其关联,以便您可以在操作方法中访问它。