0

我的 ViewController 的 View 有几个子视图。在用户的操作中,我添加了更多的子视图,并尝试修改所有子视图的位置。只有新添加的子视图的位置在变化,旧的没有。

如果我更改旧子视图的位置而不将新子视图添加到我的视图中,一切都会按预期工作。

我也试过改变它们的尺寸。这似乎奏效了。问题只是位置。

有人遇到过类似的问题吗?提前致谢!

编辑:

我已经尝试通过改变中心和改变框架的原点。

[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 回答