当它是UIScrollView的孩子时,不能设置UIView的框架

时间:2014-06-01 16:38:11

标签: ios uiscrollview

我在故事板的UIScrollView中创建了一个UIView。

enter image description here

我想以编程方式将框架设置为UIView。我试图以编程方式使用setFrame函数设置框架,但是它不适用于UIScrollView中的UIView。

如果我使用[[UIView alloc] initWithFrame:CGRectMake(0,0,320,110)]在UIScrollView中创建一个UIView,而不是更改视图的大小,那就可以了!

enter image description here

我的代码: enter image description here

但我想通过IB创建一个uiview并使用setFrame函数设置框架。

最不可能的条件是Autolayout是“TRUE”。

1 个答案:

答案 0 :(得分:3)

  

最不可能的条件是Autolayout是“TRUE”。

如果您希望通过直接设置视图框架来混合约束,则需要确保为视图设置view.translatesAutoresizingMaskIntoConstraints = YES。 AFAIK,这不能在IB for iOS中完成,只能在代码中完成。

还要注意设置translatesAutoresizingMaskIntoConstraints = YES会为您在IB中(或以编程方式)定义的那些添加新约束,并且您必须确保它们保持一致,否则您将获得异常。因此,例如,如果您在代码中设置帧原点,但也固定了视图和超视图之间的最大距离,那么如果这些规范不兼容,您将遇到问题。