iOS视图在addSubview上重置

时间:2014-04-02 07:57:57

标签: ios objective-c reset addsubview

我的故事板中间有一个方形图像视图:280,140(垂直) 当应用程序启动时,我可以通过按下按钮移动此imageView。我使用:

移动imageView
    _mainImage.frame = CGRectMake(_mainImage.frame.origin.x + 2, _mainImage.frame.origin.y, _mainImage.frame.size.width, _mainImage.frame.size.height);

在应用程序运行时,我不断向mainView添加新的imageView:

UIImageView *imgView;
imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, yCoordinate, 50, 10)];
imgView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:imgView];

每次我调用此代码时,我放置在中间并移动的方形图像视图将被设置回其起始位置。似乎主视图得到了重置"每次调用addSubview。有没有办法在没有mainView" reset"?

的情况下添加子视图

1 个答案:

答案 0 :(得分:7)

您的视图很可能是使用Autolayout设置的(这是故事板或笔尖的默认设置),当您添加新的子视图时,会执行布局传递,将您的视图位置重置为原始约束定义的位置。

您应该通过更新其约束来移动视图,或者关闭Autolayout。有许多文章解释如何做这些事情中的任何一个。