2016-05-17 103 views
0

我需要以某种方式保持滚动视图始终滚动到底部,而其高度降低。保持UIScrollView滚动到底部

当边界改变动画时很难解决。是否有像这样的“重力”属性?

+0

高度减少了什么?内容大小或视图 –

+0

@PKT滚动视图。 – Astoria

回答

3

您可以通过在用于调整UIScrollView大小的相同动画块中使用非动画版本setContentOffset来实现此行为 - 在这种情况下,两个更改都将同时进行动画。例如:

UIView.animateWithDuration(0.5, animations: {() -> Void in 

    let delta: CGFloat = 100 

    /// Change UIScrollView's height with some delta value, for instance: 
    self.scrollView.frame.size.height -= delta 

    /// Update content offset with the same delta value: 
    self.scrollView.contentOffset.y += delta 
}) 
+0

即使对于多个并发动画,您的答案也是正确的。谢谢! – Astoria

0

尝试使用setContentOffset:animated:每次缩小UIScrollView的框架时滚动到底部。

+0

不幸的是,由于高度变化动画,这不起作用。 – Astoria

-1

您正在使用动画降低scrollview的高度。您可以在动画完成块中使用setContentOffset:animated:。它将保持滚动视图始终滚动到底部。

+0

如果在动画完成块中这样做,则内容偏移量将仅在动画完成时更新,例如,当视图完成调整大小的动画时,会出现滚动视图内容的“跳跃”。 –