UITableView で編集状態を区別しようとしています。
編集ボタンをタップした後に編集モードになっているときにのみメソッドを呼び出す必要があるため、セルをスライドさせて小さな円形の削除アイコンが表示されますが、ユーザーがスワイプして削除するときは表示されません。
とにかく私は2つを区別することができますか?
ありがとう。
編集:
ロドリゴのおかげで解決
各セルとテーブルビュー全体の両方に「編集中」の BOOL 値があるため、すべてのセルをループして、複数のセルが編集されている場合は、テーブル全体が (ユーザーが編集ボタンをタップした) ことを認識しますが、 1 つが編集中である場合、ユーザーがセルをスワイプし、その個々のセルを編集したことがわかります。これにより、各編集状態を個別に処理できます!
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
int i = 0;
//When editing loop through cells and hide status image so it doesn't block delete controls. Fade back in when done editing.
for (customGuestCell *cell in self.tableView.visibleCells)
{
if (cell.isEditing) {
i += 1;
}
}
if (i > 1)
{
for (customGuestCell *cell in self.tableView.visibleCells)
{
if (editing)
{
// loop through the visible cells and animate their imageViews
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.4];
cell.statusImg.alpha = 0;
[UIView commitAnimations];
}
}
}
else if (!editing)
{
for (customGuestCell *cell in self.tableView.visibleCells)
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.4];
cell.statusImg.alpha = 1.0;
[UIView commitAnimations];
}
}
}