【发布时间】:2013-04-15 13:54:42
【问题描述】:
我的 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;
}
它们的大小改变了,但它们没有移动到左上角。
【问题讨论】:
-
当您提到您正在更改视图位置时,您是否正在更改视图的中心属性?
-
如何保存对这些子视图的引用?更换框架时,您指的是所有这些吗?代码请...
-
好的,我猜是找到问题了。我在 viewWillLayoutSubviews 方法中做了一些设置。我不知道,它是在您添加一些子视图后调用的。感谢您的帮助