我正在 UITableViewCell 上创建一个自定义单选按钮。我对实现一个委托会通知我每个按钮选择感到困惑。
例如,在 UITableView 中,我们有一个方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
当用户选择特定行时调用它。我希望我的选项按钮选择具有相同的行为。
提前致谢。
您需要观察用户采取的操作。我将单选按钮创建为 UIControl,并使用目标操作来观察用户选择。
所以你会想告诉按钮:
[radioButton addTarget:self action:@selector(radioButtonValueDidChange:) forControlEvent:UIControlEventValueChanged];
然后实现一个观察动作的方法:
- (void)radioButtonValueDidChange:(RadioButton *)button {
// Do whatever you need to after a user selects a button.
}
所以现在每次选择或取消选择对象时都会调用“radioButtonValueDidChange:”,您可以采取相应的行动。
我建议你继承UIButton
并使用通常的目标/动作语义,而不是重新发明轮子。
但是,如果您想通用地实现委托模式,在Cocoa Fundamentals Guide中有来自 Apple 的优秀文档(向下滚动到标题为“为自定义类实现委托”的部分)。