我正在研究一個基本上覆蓋整個屏幕的自定義繪製的UIView
的iPad應用程序。它是一個音頻應用程序,它具有VU計量表,它可以通過以太網約30秒鐘獲得更新消息,然後告訴UI重新繪製屏幕上的VU計量表。處理多個/頻繁調用UIView needsDisplayInRect高效
我遇到的問題是在視圖中有不同位置有16個VU表,我最終每秒調用needsDisplayInRect
每秒30次。如果我在drawRect
函數中完成所有繪圖,那麼它可以工作,但是它非常緩慢,因爲CGRect
傳遞到drawRect
幾乎是整個屏幕。
在OSX版本中有NSView
getRectsBeingDrawn
函數,它給了我一個顯着提高重繪性能的途徑。不過,據我所知,iOS中沒有相應的功能。
我已經試過存儲,我已經叫那麼CGRects
只重繪他們drawRect
,但事實證明,經常的iOS決定重繪CGRects
已經有呼籲他們needsDisplayInRect
之間的區域,所以我結束了我還沒有請求重繪的區域上的大白色矩形(儘管我確實獲得了我期待的性能改進)。這裏的問題是,我看不到一種方法來獲取實際上正在重繪的rects,只是將rect傳遞到drawRect中,這實質上是所有正在重繪的rects的聯合。
那麼,有沒有其他的方法來加快頻繁重繪我錯過的UIView
的小區域?