0

次のコードで UISwitch を作成しました。

CGRect switchFrame = CGRectMake(200, 10, 94, 27);
UISwitch *yesNo = [[[UISwitch alloc] initWithFrame:switchFrame] autorelease];
[yesNo addTarget:self action:@selector(handleSwitch:) forControlEvents:UIControlEventValueChanged];

ただし、スイッチの状態に関係なく、視覚的に であっても、onプロパティは常に を返します。YESNO

イベント ハンドラは次のようになります。

-(IBAction) handleSwitch: (UISwitch *) sender{
    self.displayCompleted = sender.on;
}

displayCompleted プロパティを設定します。

-(void) setDisplayCompleted:(BOOL)newValue{
    displayCompleted = newValue;
    [[self tableView] reloadData];
}

何が原因でしょうか?

4

1 に答える 1

0

私はばかげた間違いを犯していました: reloadData の後にセルを再作成すると、displayCompleted プロパティの現在の状態を反映せずに UISwitch が作成されました。

于 2011-05-13T12:24:19.093 に答える