0

こんにちは、私のアプリケーションでは、セル コンテンツ ビューにスイッチを追加しました。そのスイッチを選択すると、特定のセル インデックス値を取得する必要があります。そのために、スイッチセレクターメソッドで以下のようなコードを書きました。

UISwitch *_switch = (UISwitch *)sender ;
UITableViewCell *cell = (UITableViewCell *)[[_switch superview] superview];

ここには多くのセクションがあり、各セクションには多くの行があります。ios6 では、スイッチを選択すると、その特定のセル タグ値が正しく指定されます。しかし、ios7では、スイッチを選択しても、最初のセクションの値の最初の行が常に返されます。

ログ メッセージは、IOS7 では次のようになります。

セルは 0 です

セルは ; レイヤー = ; contentOffset: {0, 0}>

この問題をできるだけ早く解決する方法を教えてください。

4

1 に答える 1

0

switch アクションのデリゲート メソッドを使用して、カスタム UITableViewCell サブクラスを使用することをお勧めします。次に、iOS6/7 では異なるビュー階層に依存しません。

@protocol SwitchCellDelegate;
@interface SwitchCell : UITableViewCell

- (IBAction)switched:(id)sender;
@end

@protocol SwitchCellDelegate

- (void)switchCell:(SwitchCell *)cell didSwitch:(BOOL)switchState;

@end
于 2013-11-07T05:37:27.850 に答える