2012-02-26 60 views
0

在用戶仍在滾動時,如何獲取有關UIScrollView的contentOffset或類似信息?例如,如果我想將圖像作爲標題放在UIWebView內容的正上方,而圖像不是WebView的scrollView的一部分,但在用戶滾動時更新它,而不是在它們放開後跳到位置。我怎麼能這樣做呢?如何獲取UIScrollView中間滾動的contentOffset?

回答

1

在iOS 5中,UIWebView有一個scrollView屬性,它是負責處理滾動的UIScrollView。在iOS 5之前,您可以使用[subview isKindOfClass:[UIScrollView class]]搜索子視圖的UIWebView的子視圖屬性。

一旦你有了UIScrollView,你就可以設置它的委託屬性。在委託中,您可以在用戶滾動時回覆scrollViewDidScroll:消息,並更新標題視圖的位置/內容。

加了:29/2/2012 - 爲了保留UIWebView的功能,您需要將攔截的UIScrollViewDelegate方法轉發給UIWebView。爲此,您可以在協議中所有強制方法的末尾調用UIWebView,併爲可選協議方法實施類似forwardInvocation:forwardingTargetForSelector的操作。這將保留您的原始UIWebView行爲,並允許您使用自己的邏輯對其進行增強。

+0

當我實現這個,我可以得到所描述的contentOffset,但縮放是搞砸了。我註釋了「webview.scrollView.delegate = self;」並且縮放是固定的。有任何想法嗎? – Greg 2012-02-26 23:23:46

+0

@Greg正如我在我的回答中所說的,你不能用'UIWebView'來做這件事。如果您將自己設置爲UIWebView的'UIScrollView'的委託,那麼您就是踩着'UIWebView'。它不能做到。 – 2012-02-27 11:50:09

+0

然後在完成你需要做的事情之後,將所有委託調用轉發給webview本身。即將自己留作委託,然後在委託方法中向webview發送相同的消息和參數。 – ikuramedia 2012-02-28 16:26:00

0

爲什麼不能把標題作爲單獨的視圖放在UIWebView之上?爲什麼它必須是子視圖?

+0

它沒有。我不知道你從哪裏得到。 – Greg 2012-02-28 00:30:59