あなたは、これが追加されますだけでなく、新しい行に
を追加するアニメーションが最初UISwitch
にターゲットUIControlEventTouchUpInside
を追加する、insertRowsAtIndexPaths
を使用することができます。
[switch addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged];
- (無効)switchChange:(UISwitch *)送信者{
isSwitchOn = sender.on; //edited
[myTable beginUpdates];
NSIndexPath *row1 = [NSIndexPath indexPathForRow:1 inSection:0];
NSIndexPath *row2 = [NSIndexPath indexPathForRow:2 inSection:0];
//you may add as many row as you want here.
[myTable insertRowsAtIndexPaths:[NSArray arrayWithObjects:row1,row2,nil] withRowAnimation:UITableViewRowAnimationMiddle];
[myTable endUpdates];
}
とはあなたが挿入されますどのように多くの行を追加しますことを確認してくださいnumberOfRowsInSection:
}
に切り替えた後、必要がありますどのように多くの行あなたは別のセクションを挿入し、上記と同様の操作を行うために[myTable insertSections:withRowAnimation:
をチェックすることをお勧めします。オフに切り替えた場合deleteRowsAtIndexPaths:
を実装
:しかし、あなたはnumberOfSectionsInTableView:
UPDATEで、追加されますどのように多くのセクション述べることを忘れないでください。
- (ボイド)switchChange:(UISwitch *)差出人{
isSwitchOn = sender.on;
if(isSwitchOn){
[myTable beginUpdates];
NSIndexPath *row1 = [NSIndexPath indexPathForRow:1 inSection:0];
NSIndexPath *row2 = [NSIndexPath indexPathForRow:2 inSection:0];
//you may add as many row as you want here.
[myTable insertRowsAtIndexPaths:[NSArray arrayWithObjects:row1,row2,nil] withRowAnimation:UITableViewRowAnimationMiddle];
[myTable endUpdates];
}
else{
[myTable beginUpdates];
NSIndexPath *row1 = [NSIndexPath indexPathForRow:1 inSection:0];
NSIndexPath *row2 = [NSIndexPath indexPathForRow:2 inSection:0];
//you may add as many row as you want here.
[myTable deleteRowsAtIndexPaths:[NSArray arrayWithObjects:row1,row2,nil] withRowAnimation:UITableViewRowAnimationFade];
[myTable endUpdates];
}
}
@mbh、それはUITableVIewDataSource法ではなく、デリゲート方法です。 –
ありがとうございました。説明するコードも追加されました。 – mbh
iOSのネイティブ設定アプリと同様に、アニメーションが少ない下のセルを非表示にすることはできますか? –