我正在为iOS7编码。 我有一个分组的UITableView,有3个不同的部分,每个部分都有多行。 在每一行中都有一个UITextField添加为accessoryView:
UITextField *myTextField = [UITextField alloc] init];
cell.accessoryView = myTextField;
我需要在我的代码的其他位置检索正确的单元格/ textField,例如这段代码适用于iOS6:
-(void) textFieldValueDidChange: (UITextField*) sender
{
NSIndexPath *indexPath = [self.tableView indexPathForCell: (UITableViewCell*) sender.superview];
switch (indexPath.section){
case(SECTION_1):{
switch(indexPath.row){
case(ROW_1):{
//DO SOMETHING
}
}
}
}
}
这种代码在iOS7中断。
在另一个线程中,有人建议我永远不要检索我的子视图,而是在创建单元格时将indexPath.row值分配给发件人的tag属性,然后从中检索正确的单元格。当表格是正常表格时,这非常有效,我只处理行号,但是我必须跟踪 行和部分 并且有只有一个标签属性。
处理它的最佳选择是什么?我考虑添加1000,2000,3000等来跟踪该部分,例如:2003将意味着indexPath.section = 2和indexPath.row = 3但这对我来说并不是一个优雅的解决方案。有什么想法吗?
由于
尼古拉
答案 0 :(得分:1)
如何使用保存indexPath的属性在UIView上创建类别?
·H:
@interface UIView (IndexPathTag)
@property (nonatomic, retain) NSIndexPath *indexPathTag;
的.m
@implementation UIView(IndexPathTag)
然后,在您的代码中,如果您导入UIView + IndexPath,则可以执行以下操作:
#import "UIView+IndexPathTag.h"
myView = [[UIView alloc] init];
myView.indexPathTag = indexPath;