12
制約の変更をアニメーション化するにはどうすればよいですか?
古いアプリをで更新AdBannerViewしています。広告がない場合、画面からスライドします。広告がある場合、画面上をスライドします。基本的なもの。 古いスタイルで、アニメーションブロックにフレームを設定しました。新しいスタイル、私はIBOutlet自動レイアウトの制約にY位置を決定します。この場合、スーパービューの下部からの距離であり、定数を変更します: - (void)moveBannerOffScreen { [UIView animateWithDuration:5 animations:^{ _addBannerDistanceFromBottomConstraint.constant = -32; }]; bannerIsVisible = FALSE; } - (void)moveBannerOnScreen { [UIView animateWithDuration:5 animations:^{ _addBannerDistanceFromBottomConstraint.constant = 0; }]; bannerIsVisible = TRUE; } バナーは予想通りに動きますが、アニメーションはありません。 更新:私はアニメーションをカバーするWWDC 12トークオートレイアウトをマスターするためのベストプラクティスを再視聴しました。CoreAnimationを使用して制約を更新する方法について説明します。 次のコードを試してみましたが、まったく同じ結果が得られます。 - (void)moveBannerOffScreen { _addBannerDistanceFromBottomConstraint.constant = -32; [UIView animateWithDuration:2 animations:^{ [self.view setNeedsLayout]; }]; bannerIsVisible = FALSE; } …