2013-01-11 63 views
1

我已經創建了一個應用程序,其中我有一個大的滾動視圖(兩個頁面高度),導航欄是可見的。此外,我已經設置好滾動視圖開始滾動到底部頁面,觸及30px標記下方的UIScroll視圖沒有註冊(例如,如果你觸摸導航欄下方30px以上,你將能夠按下按鈕但不滾動UIScrollView)。這一切都非常出色,可以讓我看起來像是從上面拉下一個窗戶,所有這一切都是一個整潔的效果。UINavigationBar註冊觸摸UIScrollView

問題是,在用例測試中,許多用戶似乎敲擊得太高(敲擊UINavigationBar),因此他們的滑動手勢嘗試拉下窗口不被讀取。基本上,如果觸摸開始在導航欄上,整個手勢將被忽略。這導致用戶感到沮喪(知道他們應該能夠拉下窗戶但無法),或者認爲下拉由於某種原因已被禁用。

我想實現的方式,例如,如果用戶的觸摸從UINavigationBar的內啓動,但不上的導航按鈕之一,觸摸向下傳遞到UIScrollView的。這是可能的,如果是這樣,我該怎麼去做呢?

+0

我使用類似於[此解決方案](http://stackoverflow.com/a/10365223/1669034)的東西來獲得我上面提到的效果,只有滾動視圖才能滾動,如果您從頂部開始。 – Doc

回答

1

嘗試使用自定義導航欄。從UINavigation欄繼承,然後添加一個子視圖,並在其中添加一個手勢。

+0

我可以將子視圖添加到默認的UINavigationBar上,該UINavigationBar上有一個手勢識別器,但我寧願將觸摸直接傳遞給滾動視圖,而不是有可能的單獨手勢識別器。 – Doc

+0

@Doc但我不確定它是否會將導航欄邊緣和視圖頂部的姿勢放在一起。 –

+0

我結束了訴諸這個伎倆。老實說,不是我想要的,但至少它解決了主要問題。 – Doc