簡體   English   中英

我可以攔截UIScrollview.contentOffset的'willSet'和'didSet'嗎?

[英]Is there a 'willSet' & 'didSet' I can intercept for UIScrollview.contentOffset?

我遇到一種情況,當contentOffset.y為負值時,我需要優雅地移動框架。

問題是我不希望在內容已經降至0以下之后再調用contentOffset

UIScrollView偏移其內容之前,是否有willSet調用可在其中進行攔截?

看來,這可行:

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

UIScrollView的子類中,只需重寫contentOffsetwillSet 似乎在layoutSubviews()之前調用了它。

您可以快速輕松地添加willSet。 只是子類UIScrollView,並且僅重寫它,就像這樣。 顯然,您除了println之外還想做些其他事情,但是我確認在didScroll委托之前確實可以執行此操作。 我不知道它將解決您的動畫問題,但這就是您要的。

import UIKit

class MyScrollView: UIScrollView {

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

}

您可以使用委托方法scrollViewDidScrollscrollViewWillBeginDecelerating並攔截contentOffset.y 希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM