2

我有一个带有复选标记按钮的表格视图的应用程序。使用 UIcontroll 的子类化。使用这个

如何在屏幕上显示 UIControl 的子类,它只会切换图像。在我的情况下,我有两个部分。当我选择第 0 部分上的按钮时,它必须取消选择所有其他选择的按钮。仅适用于该按钮,而且我还需要知道用户选择了哪个按钮。有人可以帮我吗?

4

1 回答 1

0

在 ui 元素之间进行通信的最简单方法是发布事件。因此,在这种情况下,您想要的是捕获触摸事件或复选框更改事件,然后发布一个您的按钮被选中的事件。在其他单元格中,监听事件,当另一个复选框被选中时,单元格将其复选框设置为取消选中。

在选择单元格中:

NSDictionary *userInfo = [NSDictionary dictionaryWithObject:checkbox forKey:@"selectedCheckbox"];
   [[NSNotificationCenter defaultCenter] postNotificationName:@"checkboxSelected" object:nil userInfo: userInfo];               

在其他单元格中:

   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(clearSelection) name:@"checkboxSelected:" object:userInfo];
... look in the 
-(void) checkboxSelected: (NSNotification *) note  {
    NSDictionary * userInfo = note.userInfo;
    checkbox = (UnMessage *)[userInfo objectForKey:@"selectedCheckbox"];
    if(checkbox == myCheckbox) return; // ignore
// deselect my checkbox...

在单元格上的 dealloc 上:

 [[NSNotificationCenter defaultCenter] removeObserver:self name:@"checkboxSelected" object:nil];
于 2012-11-07T03:35:26.400 回答