9

チュートリアルからアニメーション付きの自動レイアウトを学んでいた

http://weblog.侵略コード.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was

そして物事は完璧に機能していました。

アプリケーションでこの概念を使用しようとしたとき、設定画面 (UIView) を下から上にアニメーション化しようとすると、設定画面が空の UIView の場合にうまく機能します。

しかし、この設定画面にサブビューとして UILabel を追加すると、アニメーションが消えてしまいます。この UILabel を設定画面から削除すると、アニメーションが表示されます。

ここに私が接続したコンセントがあります

__weak IBOutlet UIView *settingsView;
__weak IBOutlet NSLayoutConstraint *settingsBottomConstraint;
__weak IBOutlet NSLayoutConstraint *settingsViewHeightConstraint;

ビューはセットアップ メソッドをロードしました (setupViews)

-(void)setupViews
{
    settingsBottomConstraint.constant = - settingsViewHeightConstraint.constant;
    [settingsView setNeedsUpdateConstraints];
    [settingsView layoutIfNeeded];
    isSettingsHidden = YES;
}

Hide/Unhide メソッド

- (IBAction)showSettingsScreen:(id)sender {

    if (isSettingsHidden) {

        settingsBottomConstraint.constant = 0;
        [settingsView setNeedsUpdateConstraints];
        [UIView animateWithDuration:.3 animations:^{
            [settingsView layoutIfNeeded];
        }];
    }
    else{

        settingsBottomConstraint.constant = - settingsViewHeightConstraint.constant;
        [settingsView setNeedsUpdateConstraints];
        [UIView animateWithDuration:0.3 animations:^{
            [settingsView layoutIfNeeded];
        }];

    }
    isSettingsHidden = !isSettingsHidden;
}

私の問題は、UIView Auto Layout Animationの問題に似ているようです

4

1 に答える 1