2012-05-01 151 views
3

我想要檢測頂部具有UIView的UIScrollView中的觸摸。這UIView有它的按鈕,所以我不能禁用UIView上的userInteractionEnabled在UIScrollView上使用UIView處理滾動,ScrollView將不會滾動

這裏是爲了更好的理解層次:

UIView (MainView: (0,0) 320x460) 
. .UIScrollView (ScrollView: (0,0) 320x460) 
. .UIView (OverlayView: (0,0) 320x250) 
. . . .UIButton (button1: 50x50) 
. . . .UIButton (button2: 50x50) 
. . . .UIButton (button3: 50x50) 

時碰到了OverlayView的我可以滾動。但不在OverlayView的空白位置。

有什麼建議嗎? 謝謝!

回答

0

嘗試添加疊加視圖作爲滾動視圖的子視圖,然後在滾動視圖滾動時更新疊加視圖的框架。

保存在一個成員變量上初始化

CGRect baseOverlayRect = overlayView.frame; 

滾動視圖委託方法原來覆蓋幀。

- (void) scrollViewDidScroll:(UIScrollView *)scrollView { 

    CGPoint overlayOrigin = CGPointMake(baseOverlayRect.origin.x, baseOverlayRect.origin.y + scrollView.contentOffset.y); 
    CGRect newOverlayFrame = CGRectMake(overlayOrigin.x, overlayOrigin.y, baseOverlayRect.width, baseOverlayRect.height); 
    overlayView.frame = newOverlayFrame; 

} 
+0

謝謝!但我不能改變層次結構..我需要視圖和滾動視圖是獨立的,在同一級別,兩個子視圖的MainView。 –