我加入多個UIImageView
到UIView
執行諸如拖拽,縮放操作和放大images.I放大圖像增加了手勢識別器的所有UIImageViews
。自從我加入多張圖像(UIImageViews的)它降低了我的應用程序的性能。是否有任何人有更好的解決方案來執行此操作?謝謝拖拽,縮放和UIView的
回答
許多圖片的添加通常不會引起足夠的問題,導致您的應用程序速度變慢。例如,爲了用一個荒謬的例子來說明這一點,我添加了250(!)個圖像視圖,每個圖像視圖都有三個手勢,並且它在iPad 3上運行良好,包括將圖像動畫化爲其最終的安放位置/大小/旋轉。
兩個意見:
你有什麼計算密集型與你的形象的看法?例如:
簡單地在Quartz 2D中添加陰影會產生巨大的性能影響,因爲它實際上在計算上相當昂貴。即使您使用圖層陰影,也不太可能,您可以嘗試使用
shouldRasterize
,這可以緩解問題,但不能解決問題。如果這是問題,還有其他(kludgy)技術可用於計算有效陰影。另一個令人驚訝的計算密集的過程,如果你的圖像(例如)與透明度設置PNG圖像,或者如果你已經降低了您的看法
alpha
/opacity
。什麼是正在加載的圖像的分辨率/大小?如果圖像非常大,則圖像視圖將根據
contentMode
進行渲染,但如果您要拍攝大圖像並縮小它,速度會非常慢。如果可能,您應該使用屏幕分辨率圖像。
這些只是一些看起來如此無害的事情的例子,但其實在計算上相當昂貴。如果你在圖像視圖上進行Quartz裝飾,我會建議暫時將它們放回原處,看看是否有任何變化。
在自己診斷性能問題而言,我建議看以下兩個WWDC視頻:
WWDC 2012 - #211 - Building Concurrent User Interfaces on iOS包括儀器的一個相當務實的論證,以確定性能問題的根源。這段視頻明確地集中在一個特定的解決方案(將計算昂貴的流程轉移到後臺並實現併發用戶界面),在這種情況下可能適用也可能不適用,但我喜歡Instruments演示。
WWDC 2012 - #235 - iOS App Performance: Responsiveness是在應用和技術的一個措施反應如何解決問題更集中的討論。我沒有發現樂器教程與之前的視頻一樣好,但它確實更詳細。
希望這可以讓你去。如果你仍然難倒,你應該分享一些關於如何添加/配置視圖以及手勢如何操作的相關代碼。也許你也可以澄清性能問題的本質(例如,它是在初始演繹中,在手勢發生時是否是低幀率等)。
- 1. jQuery的旋轉,拖拽和縮放
- 2. Jquery拖放 - 無法拖拽
- 3. 拖拽和縮放有界的力佈局d3
- 4. 拖拽和縮小圖像捏圖像
- 5. 如何正確拖放,旋轉和縮放UIView?
- 6. jQuery可拖拽/可拖拽
- 7. 把拖拽放回原位
- 8. 在android中拖拽n拖放textview
- 9. 組合拖放和縮放
- 10. jQuery UI的拖拽,拖拽父DIV
- 11. 可拖拽的位置在可拖拽
- 12. 放大和縮小UIView
- 13. jquery ui可拖拽/可拖拽,掉落時可交換拖拽
- 14. JQuery可拖拽和可拖拽的追加問題
- 15. Drag Drag拖拽時添加拖拽
- 16. iOS上的JQ UI可拖拽:啓動拖拽處理程序中的拖拽
- 17. AngularJS可選,可拖拽和可拖拽元素
- 18. Jquery可拖拽和droppable,切換到originalPosition另一個可拖拽
- 19. jquery可拖拽,可拖拽和編輯功能
- 20. 可拖拽的元素在拖拽的頁面中拖動
- 21. jQuery可拖拽+可拖拽 - 物理移動拖拽項目到被拖拽的容器
- 22. 圖片拖拽和顯示
- 23. 如何拖拽X和Y?
- 24. 圖像的Mac示例代碼縮放,縮放,筆和拖放
- 25. jCanvas - 在縮放時拖放n拖放
- 26. jQuery可拖拽/放置問題
- 27. jQuery可拖拽/放置問題
- 28. 水平縮放UIView
- 29. 拖拽textview
- 30. jquery拖拽框
我不明白爲什麼添加多個手勢識別器應該會降低性能。根據我的經驗,事實並非如此,雖然我很可能是錯的。你可以發佈一些代碼嗎?你可以選擇擺脫手勢識別器並自己處理觸摸,但我懷疑你會獲得很大的性能提升。 – 2013-05-05 09:03:39
由於我將多個圖像視圖添加到'UIView',因此性能下降。可以通過將多個UIImageView添加到視圖來實現相同的功能@ JavierQuevedo-Fernández – kaar3k 2013-05-05 11:33:03
那麼,您可以將圖像渲染爲單個圖層,但我不確定這是否會讓你想去。你能否提供更多關於你想要建立的內容的信息,或者目前的方式?否則,這有點困難。 – 2013-05-05 17:24:33