我有一个带有复选标记按钮的表视图的应用程序。使用UIcontroll的子类化。使用此
How to display a Subclass of UIControl on the screen它只会切换图像。在我的情况下,我有两个部分。当我选择第0部分的按钮时,它将必须取消选择所有其他按钮选择。仅对于该按钮,还我需要知道用户选择哪个按钮。任何人都可以帮助我吗?
答案 0 :(得分: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];