2012-12-31 33 views
0

我有一個應用程序MGSplitView包含表視圖和UIWebView,這是固定的景觀。 Web視圖具有連接到Web視圖的UITapGestureRecognizer(用於三重敲擊)。點擊網絡查看工作的左側部分; Web視圖右側的點擊會丟失 - 操作不會被觸發,並且手勢委託消息也不會被接收到。失落的手勢iPad的風景

問題似乎不在於MGSplitViewController,因爲切換到UISplitViewController具有相同的問題;從水龍頭改爲長按也具有相同的結果。

點擊位置報告的x座標在手勢的最大寬度或接近手勢的最大寬度,但顯然是靠近顯示器的中心,我認爲這與中心的顯示有關問題 - 然而網絡瀏覽內容清晰可見且正確放置。

所有參與實施shouldAutorotatesupportedInterfaceOrientations,因此被卡在縱向視圖控制器似乎不大可能即MGSplitViewController,我UITableView子類(左側面板)和UIViewController子類右側面板。

我的手勢識別代表和從一個三抽頭(在右側面板幅視圖的視圖)輸出:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    NSLog(@"%s", __PRETTY_FUNCTION__); 
    NSLog(@"gestureRecognizer view frame: %@", NSStringFromCGRect(gestureRecognizer.view.frame)); 
    NSLog(@"location %@", NSStringFromCGPoint([gestureRecognizer locationInView:gestureRecognizer.view])); 
    return YES; 
} 

-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:] 
gestureRecognizer view frame: {{0, 0}, {703, 704}} 
location {703, -20} 
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:] 
gestureRecognizer view frame: {{0, 0}, {703, 704}} 
location {414.5, 204.5} 
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:] 
gestureRecognizer view frame: {{0, 0}, {703, 704}} 
location {414.5, 204.5} 

報告的第一個位置似乎很奇怪。

+0

行爲不當的視圖是/是UIViewControllerWrapperView,我的視圖控制器視圖的超級視圖。蘋果私有類應該爲這類問題負責似乎有點不合理。 –

回答

1

檢查您的方向並查看調整大小的機制。在這些領域出現問題時我曾多次看到過這種情況 - 如果記錄觸摸位置,我認爲您可能會發現它們在距離左側768點時停止,也就是說某處有一個視圖是縱向的。

+0

我在x = 1024處看到過觸摸座標(儘管屏幕左側仍然約爲730)。我會重新檢查方向,因爲這似乎是合理的。 –

+0

所有涉及的視圖控制器都實現了shouldAutorotate和supportedInterfaceOrientations,因此被困在肖像中似乎不太可能。 –

+0

問題被追蹤到沒有調整大小的超級視圖 - 因爲它也沒有剪裁,「頂部」視圖在全角可見,但手勢丟失。 –