我有一个容器视图@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;
}
我知道这是基本的,以前它对我有用,当我以编程方式创建对象时,但它现在对我不起作用。
答案 0 :(得分:12)
我遇到的问题是在Storyboard中设置的约束覆盖了框架更改。这解释了为什么我没有编程添加对象的相同问题。要关闭项目约束,我只需转到Storyboard.storyboard
文件,然后确保“Utilities”侧栏已打开并选择“File Inspector”选项卡。然后我在“Interface Builder Document”下滚动并取消选择“Use Autolayout”。在此之后,我重新启动该项目以找到以编程方式设置框架的工作。
答案 1 :(得分:3)
视图的“frame”属性用于布局。如果您在故事板中布置了容器视图,并想在代码中移动它。尝试“转换”属性。例如,“self.containerView.transform = CGAffineTransformTranslate(self.containerView.transform,0.0,10.0);” =>向上移动容器视图10点:)