繁体   English   中英

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

[英]Container View made in Storyboard will not change frame programmatically

我有一个容器视图, @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;
}

我知道这是基本的,它之前对我有用,当我以编程方式创建对象时,但它现在对我不起作用。

我遇到的问题是在Storyboard中设置的约束覆盖了框架更改。 这解释了为什么我没有编程添加对象的相同问题。 要关闭项目约束,我只需要转到Storyboard.storyboard文件,然后确保“Utilities”侧栏已打开并选择“File Inspector”选项卡。 然后我在“Interface Builder Document”下滚动并取消选择“Use Autolayout”。 在此之后,我重新启动该项目以找到以编程方式设置框架的工作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM