0

タップ可能なセルと を持つUITableViewセルがいくつかありUISwitchます。UITableViewまたはUISwitchがタップされたかどうかを検出する最良の方法は、タグを使用することだと思いました。

ここに画像の説明を入力

これらのアイテムにタグを追加しましたが、検出を行うためのコーディング方法がよくわかりません。これどうやってするの?

注: これが iOS 7 であることは認識していますが、Apple は現在、すべての開発者がアプリを提出することを許可しているため、もはや NDA の下ではないと想定しても安全だと思います。

4

2 に答える 2

2
 UISwitch *label = (UISwitch *)[self viewWithTag:2];

アドバイス: これらの項目への参照を保持するためにプロパティを使用しない場合は、コード内に 1、2、3 よりも優れたものがあることを確認してください。たとえば、これらの要素の列挙を行います。

 typedef enum {
     kUIElementTableView,
     kUIElementSaveSwitch
 } UIElements;

 UISwitch *label = (UISwitch *)[self viewWithTag:kUIElementTableView];
 UISwitch *label = (UISwitch *)[self viewWithTag:kUIElementSaveSwitch];
于 2013-09-12T15:07:56.707 に答える
2

@Grzegorz Krukowskiの回答は、コードでスイッチを取得する方法を示しています。

また、スイッチがタップされたときに呼び出されるメソッドをセットアップする必要があります。その方法は次のとおりです。

おそらく、スイッチへの参照を取得しますviewDidLoad

UISwitch *label = (UISwitch *)[self.view viewWithTag:2];

次に、コントロール イベントがトリガーされたときに実行するメソッドを設定します。

[label addTarget:self action:@selector(switchValueChanged:) 
            forControlEvents:UIControlEventValueChanged];

- (void)switchValueChanged:(UISwitch *)switch {
    // Do something here....
}

テーブルビューはスクロールしますか? スイッチを含むセルが画面外にスクロールされると、テーブル ビューがセルをリサイクルする方法が原因で、アクセスに問題が発生する可能性があります。上記のコードは、この問題が発生しないことを前提としています。

于 2013-09-12T15:25:28.190 に答える