2009-10-25 47 views
0

因爲簡單的任務轉向地獄,我正在嚴重失去我的頭髮。所以我有UIScrollView子類 - 使用該滾動視圖的MyScrollView和UIViewController子類StoryViewController。我需要知道什麼時候滾動滾動,所以我該怎麼辦?我嘗試委託!委託UIScrollView不起作用 - 需要幫助!

// StoryViewController.h 
@interface StoryViewController : UIViewController <UIScrollViewDelegate> 

// StoryViewController.m 
// init 
scrollView = [[MyScrollView alloc] init]; 
scrollView.delegate = self; 

// delegated function 
- (void)scrollViewDidScroll:(UIScrollView *)s { 
    NSLog(@"TEST"); 
} 

編輯:一些NSLogs

Self: <StoryViewController: 0xfce090> 
ScrollView Delegate: <StoryViewController: 0xfce090> 
WebView Delegate: <StoryViewController: 0xfb1a30> 

編輯:UIWebView的子類(MyWebView),這是MyScrollView的子視圖工作正常,(無效)webViewDidFinishLoad:(UIWebView的*)webView的(在同一storyviewcontroller.m )打印消息。

沒有錯誤,建立良好,運行良好。滾動後 - 沒有打印。

我在做什麼錯?

回答

0

所以,再次,愚蠢的獎勵去sniurkst。事實上,UIWebView被不正確地添加到UIScrollView中,所以對我來說它是「哦,我的上帝,我的滾動視圖正在工作」,而它仍然是UIWebView自己滾動。

對不起,我的愚蠢。謝謝大家試圖幫助我,下次我會添加更多的代碼示例,這樣你就可以看到發生了什麼,並嘲笑我的錯誤:)

如果有人會指出我的例子如何正確使用ScrollView和WebView裏面,所以ScrollView將負責所有的滾動,我會非常感激。

+0

對不起,沒有辦法做到這一點。 WebViews處理他們自己的滾動。您可能可以使用固定大小的UIWebView並禁用其userInteractionEnabled標誌。當然,然後定期觸摸它將無法工作。我會推薦一種不同的方法。 – 2009-10-25 17:39:19

+0

好吧,這很可悲,因爲我需要WebViews豐富的文本與CSS/JS和鏈接,我也需要知道它的滾動偏移量和滾動時間... 感謝您的迴應,也許我會想出一些東西出。 – sniurkst 2009-10-25 18:29:08

3

您確定scrollView實際上是顯示的滾動視圖嗎?我能想到的一對夫婦的事情,我會檢查在絕望的順序:

  1. 檢查我實際添加滾動視圖到self.view self.view加載
  2. 檢查後,當我添加滾動視圖自.view,這是相同的對象我有,當我指派代表
  3. Checkwhen我添加滾動視圖是滾動視圖的委託仍設置爲視圖控制器
  4. 檢查自我,其實分配時設置爲視圖控制器代表
  5. 嘗試使用常規的UIScrollView並查看如果有什麼變化
+0

謝謝,你的信息很有用,我已經嘗試了一切,還有更多,但仍然沒有運氣。即使我將UIScrollView委託給MyScrollView - 也沒有任何反應。委託功能可能有問題嗎?他們可以無法訪問? – sniurkst 2009-10-25 12:34:18

+0

只是要清楚,你有沒有嘗試用UIScrollView替換MyScrollView? 沒有理由基於你上面的代碼,代表不應該工作,所以它是在別的地方被打破。 – 2009-10-25 15:01:28

+0

是的,我試過原始的UIScrollView - 沒有幫助。它看起來像scrollView.contentSize和.contentOffset持有零。天哪,我在這裏做了什麼.. – sniurkst 2009-10-25 15:38:05

4

這可能是一個紅鯡魚,但你調用alloc和init,而不是alloc和initWithFrame :.我假設你在viewDidLoad方法中添加了scrollView?這是一個基於XIB的控制器嗎?你有沒有嘗試在XIB文件中添加scrollview,並在那裏設置?你有沒有嘗試添加其他委託方法?

+0

我應該使用initWithFrame而不是init嗎?我真的不知道這一點,我認爲這是正常的,以後使用「init」和設置框架。 MyScrollView沒有視圖控制器,所以不是XIB baised(我與IB非常可怕,所以我盡我所能,以編程方式)。其他委託方法也不起作用。而我的頭像地獄一樣痛苦,它應該是一個這麼簡單的任務... – sniurkst 2009-10-25 16:01:03

+0

是否有可能UIScView是MyScrollView的子視圖以某種方式截取和搞亂了一切?我怎麼能測試它? – sniurkst 2009-10-25 16:17:02

+0

initWithFrame:是視圖的指定初始化程序;你應該從你自己的init中調用它,如果你沒有重寫init,直接調用它。 如果你的UIWebView是UIScrollView的孩子,它很可能會抓住你的事件。最簡單的嘗試是用UIImageView中的固定UIImage替換UIWebView。 UIWebView處理自己的滾動;你將很難用這種方式與它互動。 – 2009-10-25 17:37:02