2

内部にコンテナがありますUIViewControllerUIView広告が画面上で占める違いを考慮して、広告が画面に表示されるときにそのコンテナのサイズを変更しています。問題は、ビューのサイズが変更された後、すぐに元に戻ることです。私は今、複数のことを試みましたが、成功しませんでした。

メソッドでコンテナー ビューのサイズを変更しようとしましviewDidLoadたが、何もしません。また、self.view.autoresizesSubviews = NO;私の目標は、広告が画面上でアニメーション化するのと同じ方法で、サイズの変化をビューでアニメーション化することです。でも、どうやってもサイズの変化はとどまりません。

フレームを設定するために使用しているコード:

CGRect rectFrame = CGRectMake(self.tableViewController.frame.origin.x,
                                  self.tableViewController.frame.origin.y,
                                  self.tableViewController.frame.size.width,
                                  self.tableViewController.frame.size.height - 300);

self.tableViewController.frame = rectFrame;
4

1 に答える 1

5

これは、デフォルトでオンになっている自動レイアウトによるものです。これをオフにするか、フレームを設定するのではなく、制約をアニメーション化してサイズの変更をアニメーション化する必要があります。ビューの下部に制約をアニメーション化するには、IBOutlet を作成し (bottomCon と呼びます)、その定数パラメーターを変更します。

[UIView animateWithDuration:1 animations:^{
        self.bottomCon.constant = 300;
        [self.view layoutIfNeeded];
    } completion:nil]; 
于 2013-09-11T04:35:39.813 に答える