セルにカスタム サブビューを含む UITableView があります。ユーザーがセルでスワイプして削除ジェスチャを行うと、[削除] ボタンが表示されている間、ビューが一瞬縮小されます。
私が理解しているように、「削除」ボタンが表示され、サブビューを短くする必要があるときに発生するシステムアニメーションが原因で発生します。サブビューの contentMode を UIViewContentModeRedraw に設定すると、アニメーションが終了するとすべてが正常に見えます。
これが組み込みのメールアプリケーションでどのように機能するかを調べたところ、すべて問題ありませんでした。
どうすればこの縮小を回避できますか? このアニメーションを「フェードアウト」などに変更することはできますか? または、このアニメーションが開始されてサブビューがすぐに短くなる瞬間を処理できますか?
解決:
最後に、次の方法で UITableViewCell をサブクラス化し、layoutSubviews メソッドをオーバーライドすることで解決策を見つけました。
- (void)layoutSubviews
{
[super layoutSubviews];
UIView *view = [self.contentView viewWithTag:101];
CATransition *animation = [CATransition animation];
animation.duration = 0.2f;
animation.type = kCATransitionFade;
[view.layer removeAllAnimations];
[view.layer addAnimation: animation forKey:@"deletingFade"];
}
ありがとう!