2012-12-29 37 views
0

我的ViewController的視圖有幾個子視圖。在用戶的操作中,我添加了更多的子視圖,並嘗試修改所有子視圖的位置。只有新添加的子視圖的位置正在改變,舊的不是。查看定位問題

如果我更改舊的子視圖的位置而不添加新的到我的視圖,一切都按預期工作。

我也試過改變它們的尺寸。這似乎工作。問題只在於這個位置。

任何人都遇到過類似的問題?提前致謝!

編輯:

I`ve通過改變中心,通過改變框架的由來試過。

[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; 
} 

它們的大小被改變,但他們不會移動到左上角。

+0

您是否在更改視圖位置時更改視圖的中心屬性? – tiguero

+0

你如何保存對這些子視圖的引用?你是否在改變框架時指的是他們全部?代碼請... – Stavash

+0

好的,發現問題,我猜。我在viewWillLayoutSubviews方法中做了一些設置。我不知道,它是在添加一些子視圖後調用的。謝謝您的幫助 – Levi

回答

0

好的,找到了問題,我猜。我在viewWillLayoutSubviews方法中做了一些設置。我不知道,它是在添加一些子視圖後調用的。感謝您的幫助