我在UITableView的每个单元格中都有一个按钮。现在我想将每个按钮绑定到函数中的操作方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { ...}
这是我的尝试代码:
NSString* functionNamePrefix = @"actionMethod_";
NSString* functionName = [functionNamePrefix stringByAppendingString:[NSString stringWithFormat:@"%d",indexPath.row]];
SEL selectorFromString = NSSelectorFromString(functionName);
[button addTarget:self action:@selector(selectorFromString:) forControlEvents:UIControlEventTouchDown];
失败的原因是:操作选择器将“ selectorFromString”作为函数名称,但是SEL由字符串转换。
有什么建议吗? TIA!
最佳答案
更好的方法是为所有按钮分配相同的操作,然后在action方法中计算出按钮按下时所在的行。否则,如果您的单元格被重用,则每个按钮都将分配有多个操作,这将非常令人困惑。
使用我对this question的回答,您可以轻松确定按钮或其他控件所在的行。