UIScrollView contentOffset在更改宽度约束时更改

时间:2016-04-18 07:18:58

标签: ios uiscrollview autolayout

我有一个- (void)viewWillLayoutSubviews { [super viewWillLayoutSubviews]; self.scrollViewWidthConstraint.constant = self.view.width; } ,其宽度由约束设置。我在视图更改时修改此约束的常量(在此示例中,当界面方向更改时)。

ABC

不幸的是,当这个值发生变化时,我注意到滚动视图的内容偏移也会发生变化(我想不到模式的值)。如果常数永远不变,则没有违规行为。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

因为你已经为scrollview设置了约束,现在如果你改变它的宽度,那么其他约束也会影响并试图满足。例如,视图具有从每一侧的距离5的约束,并且如果您将宽度增加10,则前导和尾随约束会发生冲突,因此,如果您给出宽度约束,则不要给予前导和尾随两者以及相同的高度。因此,在滚动视图中,如果您尝试更改,那么它可能会改变它的位置以满足其他约束。这就是为什么内容偏移被改变以同样调整的原因。

第二件事,

您不应将修复高度或宽度直接设置为scrollview。因为它根据内容的大小滚动。你应该将顶部,底部,前导,尾随设置为滚动视图,并根据需要为容器中的水平或垂直中心提供固定高度或长度。

希望这会有所帮助:)