tableView:didSelectRowAtIndexPath: のようなテーブルビューのヘッダービューで選択を検出する方法を誰かに説明してもらえますか? それは私にとって非常に便利です。ヘッダーを UITableCellView として定義したので、UISwitch をアクセサリ ビューとしてアタッチできました。うまく機能しましたが、スイッチで行われた変更を検出できません。助言がありますか?
1730 次
1 に答える
1
IB でスイッチを作成するのではなく、スイッチを動的に作成していると仮定します。その場合、スイッチへの変更を受信して区別するには、2 つのことを行う必要があります。まず、スイッチを作成するときに、そのtag
プロパティを対応するセクションを表す値に設定します (セクション インデックス自体など)。次に、ビュー コントローラーのメソッドにコールバックするイベント ハンドラーをスイッチに追加します。
したがって、 ではtableView:viewForHeaderInSection:
、ヘッダー ビューを遅延してインスタンス化し、おそらくキャッシュしてから、次のように言います。
[switch setTag:section];
このようにイベント ハンドラーを追加します。ここで、switchToggled: は他の IBAction と同じように定義されます。
[switch addTarget:self
action:@selector(switchToggled:)
forControlEvents:UIControlEventValueChanged];
sender
次に、イベント ハンドラーで受け取った を にキャストしUISwitch *
、プロパティを使用tag
してどのスイッチが切り替えられたかを伝えます。
于 2010-05-07T02:47:34.503 に答える