2011-12-31 66 views
0

我有一個UIScrollView,我用它作爲兩個'頁面'視圖的容器。第一頁包含兩個子視圖:一種用戶可以通過觸摸進行繪製的'canvas'UIView子類,以及一個UIMontrols的「控制面板」UIView子類。滾動視圖本身已禁用滾動(我正在使用UIPageControl滾動它)。如何使UIScrollView向前觸及UIView子類子視圖?

問題是這樣的:當我點擊控制面板視圖中的任何控件時,它們都能正常工作。但是,當我觸摸畫布視圖時,沒有任何反應。畫布子視圖上沒有控件;它只是一個空的UIView子類,用於檢測觸摸並在用戶的手指下繪製點。 (以前這一切都工作正常,我最近剛把這兩個部分放在滾動視圖中。)

如何告訴UIScrollView將觸摸轉發到canvas子視圖?我已設置滾動視圖,以便延遲內容觸摸和可取消內容觸摸關閉。啓用了用戶交互和多點觸控。

我不知道是否繼承UIScrollView並更改它的觸摸處理,或者是否重寫畫布UIView子類中的其他方法。

編輯:文斯(評論員)促使我看看觸摸事件處理程序居住的地方。它們存在於擁有控制面板視圖和畫布視圖(現在是滾動視圖)的UIViewController子類中。touchesBegan不再被調用。

謝謝

+0

做的子視圖子類句柄事件? – 2011-12-31 16:40:25

+0

@Vince,啊哈,你有東西在那裏。視圖控制器有觸摸處理程序,而不是視圖本身。謝謝! –

+0

作爲控制器屬於響應者鏈,我相信它應該處理它們。奇怪的 – 2011-12-31 16:44:45

回答

0

您使用的是iOS 5嗎?如果是這樣,請嘗試使用UIViewController Container API。如果您有ViewControllerUIScrollView以及其下的「子」視圖控制器,則可能會鏈接問題。嘗試在您的控制器中爲scrollView調用[self addChildViewController:theCanvasVC]

我在你的建築上猜測,所以我可能會關閉。讓我知道你的應用程序是如何組織的。

您可以在Container View Controllers here上閱讀。向下滾動到「實施容器視圖控制器」。