行、セクション、行の高さが大幅に変化するため、UITableviewのデータをリロードしています。トランジションを柔らかくするため、私はボタンをタップするときにトランジションを選択しました。 reloadDataやコンテンツオフセットコードをアニメーションブロック内に配置すると、結果は「ハッピー」/「吃音」になります。アニメーションの前にビューの変更を配置すると、それは夢のように機能します。 これはなぜ機能しますか?私は、transitionWithView(iOS 10.1)のバグのある動作を使用していますか?これはどのように正しく行われるべきですか?アニメーションブロック外の変更を使用すると、UIView transitionWithViewがスムーズです
[self.tableView reloadData];
CGPoint bottomOffset = CGPointMake(0, [self.tableView contentSize].height + [self.tableView contentInset].bottom - self.tableView.frame.size.height);
[self.tableView setContentOffset:bottomOffset animated:NO];
[UIView transitionWithView: self.tableView
duration: 0.35f
options: UIViewAnimationOptionTransitionCrossDissolve
animations: ^(void)
{
}
completion: nil];
答えをありがとう。しかし、問題はanimateWithDurationがスムーズに動かないということです(クロスディゾルブのように、フェードインとフェードアウトするのではなく、コンテンツのオフセットによってジャンプしている可能性があります)。コントローラーは、アニメーションブロックの変更を除外するとうまく動作します。 – damcify
@damcifyはいくつかの新しいアプローチで編集されました。 – valivaxa