2

チェックマークボタン付きのテーブルビューを備えたアプリケーションがあります。UIcontrollのサブクラス化を使用します。これを使用します。

UIControlのサブクラスを画面に表示する方法は、画像を切り替えるだけです。私の場合、2つのセクションがあります。セクション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 に答える