在Storyboard中制作的容器视图不会以编程方式更改框架

我有一个容器视图, @property (weak, nonatomic) IBOutlet UIView *containerView; ,但是当我设置它的框架时它不会移动。 这是我如何尝试:

 - (void)setFramesForCategories { CGRect frame = _containerView.frame; frame.origin.x = 20; frame.origin.y = self.view.frame.size.height - 52; frame.size.width = 236; frame.size.height = 60 * [[_dataDict objectForKey:@"Key"] count]; _containerView.frame = frame; } 

我知道这是基本的,并且在我以前以编程方式创build的对象时,它已经为我工作,但它现在不适合我。

我遇到的问题是在Storyboard中设置的约束覆盖了框架的改变。 这解释了为什么我没有与编程添加对象相同的问题。 所有我必须做的closures项目的约束是去Storyboard.storyboard文件,然后确保“实用程序”边栏打开,并select“文件检查器”选项卡。 然后我在“界面生成器文档”下滚动并取消select“使用自动生成”。 在此之后,我重新执行该项目,以编程方式设置框架的工作。

视图的“frame”属性用于布局。 如果您在故事板中布置了容器视图,并想在代码中移动它。 尝试“变换”属性。 如“self.containerView.transform = CGAffineTransformTranslate(self.containerView.transform,0.0,10.0);” =>向上移动容器视图10分:)