有没有' willSet' &安培; ' didSet'我可以拦截UIScrollview.contentOffset吗?

时间:2015-02-12 20:36:35

标签: ios swift uiscrollview uiscrollviewdelegate

我有一种情况,当contentOffset.y为负值时,我需要优雅地移动框架。

问题是,我不想让contentOffset电话 AFTER 内容已经被删除到0以下。

是否有willSet来电,我可以在UIScrollView抵消其内容之前拦截它?

3 个答案:

答案 0 :(得分:2)

看起来,这很有效:

class MyScrollView: UIScrollView {
    override var contentOffset:CGPoint {
        willSet {
            println("newOffset: \(newValue)")
        }
    }
}

UIScrollView的子类中,只需覆盖willSet的{​​{1}}即可。似乎在contentOffset之前调用。

答案 1 :(得分:1)

你可以在swift中轻松添加一个willSet。只是子类UIScrollView并且只覆盖它,就像这样。显然你会想做除了println以外的事情,但我确实在didScroll代表之前肯定会发生这种情况。我不知道它会解决你的动画问题,但这就是你要求的。

import UIKit

class MyScrollView: UIScrollView {

    override var contentOffset: CGPoint { willSet { println("old value \(newValue)") } }

}

答案 2 :(得分:0)

您可以使用委托方法scrollViewDidScrollscrollViewWillBeginDecelerating并截取contentOffset.y。我希望这能帮到你。