我有多個自定義UIWebView作爲UIScrollView內的子視圖。我已經在UIWebView的UIViewController中實現了觸摸方法,但是這些方法沒有被調用。UIWebView裏面的UIScrollView消費觸摸事件
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { }
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { }
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { }
我已經讀過其他地方,它說UIScrollView會消耗事件。這是有道理的,但是如果UIWebView在UIScrollView本身之前沒有收到觸摸事件?可能發生的事情是,UIWebBrowserView(UIWebView的子視圖)正在消耗事件。然而,這個類不能被子類化,所以我不能把事件通過superview鏈發送到UIScrollView。我已閱讀Apple iOS文檔,認爲不應該在UIScrollView中放置UIWebView,但我需要爲我的目的這樣做。
所以我的問題是:我的自定義UIWebView(即UIScrollView的子視圖)如何接收觸摸事件?
我的控制器和視圖被設置如下:
HomeViewController.h /.m /.xib
HomeView.h /.m (is a UIScrollView)
DashboardViewController.h /.m /.xib (custom UIWebView's)
HomeViewController從包含自定義視圖中的筆尖文件中加載:HomeView。 DashboardViewController是從一個Nib文件加載的。它包含一些標籤,滑塊等(請注意,這裏沒有自定義視圖 - 我沒有在這裏繼承UIView)。
HomeViewController動態加載多個DashboardViewControllers並將其視圖添加到HomeView。
DashboardViewController *dashboardViewController = [[DashboardViewController alloc] initWithNibName:@"DashboardViewController" bundle:[NSBundle mainBundle];
[homeView addSubview:dashboardViewController.view];
是的,我的意見代表已連接到文件所有者。你是什麼意思將我的視圖綁定到控制器?另外,我連接了UIScrollView子類作爲Controller的主視圖。查看我更新的帖子;我添加了一些可能有所幫助的信息。謝謝。 – mdupls
該解決方案不起作用,因爲UIWebBrowserView(而不是UIWebView)似乎挑選了觸摸事件。然而,這個類不能被改寫爲功能。 – mdupls