因此,我想摆脱代码中的所有“框架”,并完全切换到自动布局。但是在一种情况下,我希望视图的Y位置取决于content offsetbounds.origin.yUIScrollView)。使用auto layout进行此操作的正确方法是什么?一种想法是每次更改NSLayoutConstraint时都要更新常量scrollview content offset(但是在这里使用自动布局的意义是什么?),所以我希望有一种更好的方法可以通过“纯”实现autolayout

我知道这里经常讨论“ AutolayoutUIScrollView”,因此我想强调一点,我不想对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/

10-10 20:38