iOS视图在addSubview上重置

我有一个正方形的imageView在中间的故事板:280,140(垂直)当应用程序启动时,我可以通过按下button来移动这个imageView。 我移动imageView使用:

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

而应用程序正在运行,我不断添加新的imageViews到mainView:

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

每次我把这个代码称为方形imageView,我已经放在中间,四处移动,回到原来的位置。 每次调用addSubview时,似乎mainView都会“重置”。 有没有什么办法,我可以添加一个子视图,而没有主视图“重置”?

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

您应该通过更新其约束来移动您的视图,或者closuresAutolay。 有很多文章解释如何做这些事情之一。