我有一個自定義繪製的視圖,包含在水平滾動的UIScrollView中。該視圖使用水平延伸的線條和一些不同的背景顏色繪製背景。當我滾動到最左邊,使滾動視圖「反彈」時,我看到灰色的背景色。我想要做的是在該區域繪製更多的背景線條和顏色,以便看起來像視圖一直持續下去,但我無法弄清楚如何做到這一點。我已經嘗試將所有視圖的clipsToBounds設置爲NO,並在視圖外的區域中繪製,但這似乎不起作用。我如何在這方面畫畫?如何繪製UIScrollView的「反彈」區域?
4
A
回答
1
我發現在我的情況下,要解決這個,至少。我只是用一個額外的邊距增加了滾動視圖的大小,然後將滾動視圖部分地定位在屏幕之外。
CGFloat scrollViewHeight = 300;
CGFloat preferredWidthOfContent = 500;
CGFloat gutterMargin = self.bounds.size.width/2;
scrollView.frame = CGRectMake(-1 * gutterMargin, 0, self.bounds.size.width, scrollViewHeight)
scrollView.contentSize = CGSizeMake(preferredWidthOfContent + 2 * gutterMargin, scrollViewHeight);
contentView.frame = CGRectMake(0, 0, preferredWidthOfContent + 2 * gutterMargin, scrollViewHeight);
內容視圖必須知道排水溝邊距寬度,然後根據該內容在正確的位置繪製實際內容。當scrollView被「反彈」時,實際顯示內容視圖的其餘部分。
這招有效,因爲滾動視圖是延長關閉屏幕。如果您想使用與未觸摸屏幕邊緣的滾動視圖相同的技巧,則只需在滾動視圖頂部放置另一個視圖即可隱藏額外空間。
0
如果您正在繪製的線條drawRect:
方法,沒有辦法吸引他們的觀點界限之外。該物業clipsToBounds
隻影響子視圖,因此,從理論上講,你可以一個子視圖添加到您的主視圖與延伸到你的觀點的權利,提請在子視圖線的框架(顯示內容的)。
另一種選擇是將子視圖添加到滾動視圖並將其放置在主視圖的右側。然後在這個子視圖中畫線。滾動視圖仍然會彈跳,因爲它不關心其中是否還有部分可見的視圖,它只查看contentSize
屬性以決定何時停止滾動。
如果兩個選項是合適的,描述越多,你會喜歡什麼樣的你畫什麼樣的外觀線條,以實現細節。
相關問題
- 1. GTK +如何繪製繪圖區域
- 2. UIScrollView反彈
- 3. UIScrollview限制刷卡區域
- 4. 限制uiscrollview滾動區域
- 5. 如何繪製區域綠色?
- 6. 限制UIScrollView中的滾動區域
- 7. UIScrollView裏面的UIVIew反彈
- 8. DirectX限制繪圖區域
- 9. ggplot2繪製區域邊距?
- 10. 限制UIScrollView可滾動區域
- 11. UIScrollView反彈結束事件
- 12. UIScrollView在放開時反彈
- 13. 動畫,同時UIScrollView反彈
- 14. 設置UIScrollView的「Touchable」區域
- 15. 在繪圖區域上繪製圖像
- 16. 使用pygtk和glade將繪圖區域繪製到繪圖區域
- 17. Android GestureOverlayView限制可繪製區域
- 18. 如何在UIScrollView中繪製垂直線
- 19. 如何在UIScrollView中繪製大背景?
- 20. 設置UIScrollView滾動區域
- 21. 如何定義繪圖區域的大小與核心區域
- 22. 細胞Sudoku的繪製區域
- 23. 填寫繪製線下的區域
- 24. 繪製一個BitmapSource的子區域
- 25. HTML bootstrap中的可繪製區域
- 26. 繪製熱圖中的整個區域
- 27. 繪製HTML5畫布的特定區域
- 28. 在Afreechart中的線下繪製區域
- 29. 繪製差異區域的矩形
- 30. 繪製UIImage的選定區域
您是否嘗試過創建自己的滾動視圖(子類的UIScrollView)和實施的drawRect:?將這與原始繪圖實現結合起來可能會非常棘手,但這是我首先嚐試的方式。 – Till 2011-04-21 16:03:37