【问题标题】:View positioning issue查看定位问题
【发布时间】: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 方法中做了一些设置。我不知道,它是在您添加一些子视图后调用的。感谢您的帮助

标签: ios view


【解决方案1】:

好的,我猜是找到问题了。我在 viewWillLayoutSubviews 方法中做了一些设置。我不知道,它是在您添加一些子视图后调用的。感谢您的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多