2011-11-22 11 views
2

我有一個簡單的問題。在我的應用程序中,我在UIScrollView內部有一些按鈕用於導航,它們隨內容一起滾動。這樣,當用戶輸入文本字段並彈出鍵盤時,按鈕將滾動以獲得額外的空間。但是,當我點擊它們時,按鈕不會立即突出顯示。我知道我可以通過將delaysContentTouches設置爲NO來消除這個問題,但這使得滾動幾乎不可能,因爲視圖中的所有UITextFields和按鈕也會立即高亮顯示,從而竊取滾動。只能在沒有子類化的特定元素上使用delayedContentTouch?

我已經找到一種方法,只不通過UIScrollView子延緩按鍵,所以這是一種選擇,但我不知道是否有另一種方式。當我只修理一件小事時,我通常討厭子類化。

回答

3

如果delaysContentTouches設置爲YES,則UIScrollView的touchesShouldBegin:withEvent:inContentView:方法將被子類覆蓋。所以當子類化完全正常時就是這種情況。

+1

我知道它的「好」,但我有點討厭繼承子類。無論如何,我最終可能會使用這種方法,但我問了這個問題,看看他們是否是另一種解決方案。 – aopsfan

+2

無論好壞,都是這樣做的。學習愛上子類,並在此期間提交一個請求在代理中執行此操作的功能的錯誤。你可以設計你的子類來調用委託! – hatfinch

+0

是的,我開始認爲你完全正確... – aopsfan

相關問題