2011-02-14 109 views
0

我有一個帶textviews作爲子視圖的UIScrollView。現在在我的應用程序中有多個像這樣的UIScrollViews。根據選擇,我會在前一個視圖的頂部顯示相應的UIScrollView。這在所有情況下都可以正常工作,除非前一個視圖也是UIScrollView。在這種情況下,我得到的行爲是兩個UIScrollView堆疊在一起,兩個視圖捕獲滾動事件。來自以前的scrollView的textViews也是可見的(不可編輯),並重疊並導致各種問題。事情是全屏UIScrollView作爲子視圖放置到以前的視圖導致問題時,前一個視圖也是全屏UIScrollView。UIScrollView問題

任何關於如何克服這一點的指針會很棒。無論如何都要通知父級滾動視圖的孩子的滾動事件,並以完全相同的方式移動它,所以這個混亂被掩蓋?

謝謝!

回答

0

通過在呈現下一個scrollView之前呈現空視圖,找到了一個粗略的解決方案。將scrollView作爲子視圖添加到該空視圖(帶有BG圖像),並將待展示的scrollView作爲子視圖添加到該視圖中,然後將其顯示在前一個scrollView的頂部。

1

UIScrollView documentation說:

重要:你不應該嵌入的UIWebView或UITableView的對象UIScrollView的對象。如果這樣做,可能會導致意外的行爲,因爲兩個對象的觸摸事件可能混淆並被錯誤地處理。

據我所知,通常不建議在UIScrollView中嵌入一個UIScrollView子類實例。在我的一個項目中,這是一個IM應用程序,我有一個包含許多UITableViews的UIScrollView,它在你嘗試的時候有效,但它確實需要花費很多精力來處理細微的錯誤並使其正常工作。

如果不潛入代碼中,就很難說出對您的問題有用的東西,但我可以推薦您不要將UIScrollViews添加到另一個堆棧中。我會嘗試通過只允許一個UIScrollView在頂部,並刪除其他人。當你需要顯示另一個時,從視圖層次結構中刪除最上面的一個,並添加新的。我希望這有助於,祝你好運。