我在故事板的UIScrollView中创建了一个UIView。
我想以编程方式将框架设置为UIView。我试图以编程方式使用setFrame函数设置框架,但是它不适用于UIScrollView中的UIView。
如果我使用[[UIView alloc] initWithFrame:CGRectMake(0,0,320,110)]在UIScrollView中创建一个UIView,而不是更改视图的大小,那就可以了!
我的代码:
但我想通过IB创建一个uiview并使用setFrame函数设置框架。
最不可能的条件是Autolayout是“TRUE”。
答案 0 :(得分:3)
最不可能的条件是Autolayout是“TRUE”。
如果您希望通过直接设置视图框架来混合约束,则需要确保为视图设置view.translatesAutoresizingMaskIntoConstraints = YES
。 AFAIK,这不能在IB for iOS中完成,只能在代码中完成。
还要注意设置translatesAutoresizingMaskIntoConstraints = YES
会为您在IB中(或以编程方式)定义的那些添加新约束,并且您必须确保它们保持一致,否则您将获得异常。因此,例如,如果您在代码中设置帧原点,但也固定了视图和超视图之间的最大距离,那么如果这些规范不兼容,您将遇到问题。