外嘗試創建類似於iOS4的任務菜單中的內容:滾動型可見查看
(對不起傾斜後的圖像沒有足夠的代表)
我有正常的視圖控制器上這就是查看我的addSubview我的menuView。我將menuViews Y設置爲-95,這樣我就可以將viewControllers視圖95向下移動到顯示菜單。但是,如果menuViews Y是Negative,我menuView中的scrollView不起作用。
外嘗試創建類似於iOS4的任務菜單中的內容:滾動型可見查看
(對不起傾斜後的圖像沒有足夠的代表)
我有正常的視圖控制器上這就是查看我的addSubview我的menuView。我將menuViews Y設置爲-95,這樣我就可以將viewControllers視圖95向下移動到顯示菜單。但是,如果menuViews Y是Negative,我menuView中的scrollView不起作用。
您的滾動視圖不會接收觸摸輸入,因爲它不在其超級視圖的界限內(您提到的主視圖控制器的視圖)。觸摸交互系統的工作方式是AppKit框架沿着視圖層次結構測試每個視圖和子視圖,其中 - (BOOL)pointInside :(CGPoint)點和事件:(UIEvent *)事件函數。如果一個視圖對這個函數返回YES,它將重新開始整個過程,包括它的所有子視圖,直到它找到仍然返回YES的最低子視圖。您的設置的問題是,滾動視圖的超級視圖將返回NO,因爲觸摸高於它,並且您的menuView甚至不會被測試。所以,你有兩種可能的解決方案:
實現你ViewControllers視圖的UIView的一個子類(如果沒有的話)和過載pointInside:withEvent:方法函數返回YES如果觸摸不到它的框架或如果它在menuView(ViewControllers框架減去menuView框架)的範圍內。
第二種解決方案是簡單地將menuView放在其superview(0,0)的原點處,並將ViewControllers視圖保留在(0,0)處。
我建議第二個,因爲它不太複雜,更重要的一點。
非常感謝。 – Mario 2011-03-27 21:14:59