簡體   English   中英

在UIView中拖動,捏合和縮放圖像

[英]Drag , Pinch and zoom images in UIView

我正在向UIView添加多個UIImageView以執行拖動,捏合和縮放圖像等操作。我已經為所有UIImageViews添加了手勢識別器。因為我添加了多個圖像(UIImageViews),它降低了我的應用程序的性能。有沒有人有更好的解決方案來執行此操作? 謝謝

一般情況下,添加許多圖片通常不會造成應用程序速度變慢的問題。 例如,為了說明一個荒謬的例子,我添加了250個(!)圖像視圖,每個圖像視圖有三個手勢,它在iPad 3上工作正常,包括將圖像動畫化為最終靜止位置/大小/旋轉。

兩點意見:

  1. 您是否正在使用圖像視圖執行任何計算密集型操作? 例如:

    • 簡單地使用Quartz 2D添加陰影會產生巨大的性能影響,因為它實際上在計算上非常昂貴。 即使您正在使用圖層陰影,也可以嘗試使用shouldRasterize ,這可以緩解問題,但不能解決問題。 如果這是問題,還有其他(kludgy)技術可以進行計算效率高的陰影。

    • 另一個令人驚訝的計算密集型過程是,如果您的圖像是(例如)具有透明度設置的PNG,或者如果您降低了視圖的alpha / opacity

    • 正在加載的圖像的分辨率/大小是多少? 如果圖像非常大,圖像視圖將根據contentMode渲染它們,但如果您拍攝大圖像並縮小它們,它可能會非常慢。 如果可能,您應該使用屏幕分辨率圖像。

    這些只是一些看似無害的事情的例子,但實際上計算成本非常高。 如果你在你的圖像視圖上做任何石英裝飾,我建議暫時將它們削減,看看你是否看到任何變化。

  2. 在自己診斷性能問題方面,我建議觀看以下兩個WWDC視頻:

    • WWDC 2012 - #211 - 在iOS上構建並發用戶界面包括一個相當務實的儀器演示,用於識別性能問題的根源。 這個視頻顯然集中在一個特定的解決方案(將計算上昂貴的流程轉移到后台並實現並發UI),在這種情況下可能適用也可能不適用,但我喜歡Instruments演示。

    • WWDC 2012 - #235 - iOS應用程序性能:響應性是一個更集中的討論,關於如何衡量應用程序和技術中的響應能力以解決問題。 我沒有發現儀器教程與之前的視頻一樣好,但它確實更詳細。

希望這可以讓你前進。 如果您仍然難倒,您應該分享一些關於如何添加/配置視圖以及手勢正在做什么的相關代碼。 也許您還可以澄清性能問題的本質(例如,它是在初始演繹中,是在手勢發生時幀速率低等等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM