0

私のViewControllerのビューにはいくつかのサブビューがあります。ユーザーのアクションで、さらにサブビューを追加し、すべてのサブビューの位置を変更しようとします。新しく追加されたサブビューの位置のみが変更され、古いサブビューは変更されません。

ビューに新しいサブビューを追加せずに古いサブビューの位置を変更すると、すべてが期待どおりに機能します。

サイズも変えてみました。それは機能しているようです。問題は位置だけにあります。

誰かが同様の問題に遭遇しましたか?前もって感謝します!

編集:

中心を変えて、フレームの原点を変えてみました。

[UIView animateWithDuration:3
                      delay:0
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                     for (UIView *view in self.oldSubviews) {
                         view.center = center1;
                     }
                     for (UIView *view in self.newSubviews) {
                         view.center = center2;
                     }
                 } completion:^(BOOL finished) {
                 }];

のビューがnewSubviewsサブビューとして追加されていない場合、すべてが正常です。の配列を印刷しましたself.view.subviewsが、新しいサブビューと古いサブビューの間に目に見える違いはありません。

これは私がフレームで試したものです:

for (UIView *view in self.oldSubviews) {
     CGRect frame = view.frame;
     frame.origin = CGPointZero;
     frame.size = CGSizeMake(150, 300);
     view.frame = frame;
}

サイズは変更されますが、左上隅には移動されません。

4

1 に答える 1

0

わかりました、問題を見つけました、私は推測します。viewWillLayoutSubviewsメソッドでいくつかの設定を行っていました。私は知りませんでした、あなたがいくつかのサブビューを追加した後に呼び出されます。助けてくれてありがとう

于 2013-04-15T05:54:42.493 に答える