因此,我想摆脱代码中的所有“框架”,并完全切换到自动布局。但是在一种情况下,我希望视图的Y位置取决于content offset
的bounds.origin.y
(UIScrollView
)。使用auto layout
进行此操作的正确方法是什么?一种想法是每次更改NSLayoutConstraint
时都要更新常量scrollview content offset
(但是在这里使用自动布局的意义是什么?),所以我希望有一种更好的方法可以通过“纯”实现autolayout
。
我知道这里经常讨论“ Autolayout
和UIScrollView
”,因此我想强调一点,我不想对UIScrollView
子视图使用自动布局,我有一个带有2个子视图的UIView
;一个和UIScrollView
对象,我想使用自动布局来指定UIView
顶部坐标和UIView
内容偏移量之间的关系。
最佳答案
好的,您可以很容易地做到这一点。从本质上讲,就像您要对框架进行处理一样。
首先,您需要创建“变量”约束并将其保存到属性中。
您可以在代码中执行此操作...
self.heightConstraint = [NSLayoutConstraint constraintWithItem:self.theView
attribute:
relatedBy:
toItem:
attribute:
multiplier:
constant:];
// set up the rest
[self.view addConstraint:self.heightConstraint];
或通过创建约束,然后在ctrl中将其拖动到属性来在Interface Builder中进行操作。 (与其他任何IBOutlet一样)。
然后,当scrollView滚动时...
self.heightConstraint.constant = calculatedValueFromTheOffset;
[self.view layoutIfNeeded];
然后,这将像移动框架一样使用移动布局约束来移动视图。
关于ios - 自动布局和UIScrollView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21381159/