1樓:
這裡的「在UIScrollView生成大量內容的時候」我不太明白具體是指什麼,也就是內容是如何生成的?
可以通過類似與paging + 等待(activityIndicator)的方式來減少scroll view的滑動頻率,在等待時集中生成內容。
另外,如果你的效能下降是由於CoreGraphic在draw view時引起的,可以設定CALayer.rasterize屬性,可以大幅減少view被重畫的次數。
最後,一定要搞清楚,到底是什麼在吃效能,是生成內容?還是對內容的繪製?前者吃CPU,後者吃GPU。有沒有經過測試?如果是前者,你完全可以在其他執行緒中進行。
2樓:
1.資料處理分離,提前準備好資料,可以在另外乙個執行緒處理好資料再扔回主線程。
2.在程式的執行過程中所說的主線程一般就是ui執行緒,負責繪圖,事件等。而卡的原因一般是繪製內容太多或者是中間處理過程太耗時了。這個要看你程式的功能來改進了。
3.如果實在不行,可以試試用opengles來做,文字或者圖形的話有很多現成的庫可以用,沒有想像中麻煩。
3樓:瓢蟲
在非主線程進行UI操作有很大機率會導致程式崩潰,或者出現預期之外的效果。
UIScrollView也好,UITableView也好,本質上是一樣的。如果不想讓主線程變慢,一般處理是開乙個或若干個執行緒進行資料處理,主線程只負責更新UI。經驗告訴我,即便這樣做也不能百分百保證UI不卡(你用自帶的Safari應該能感覺到),這樣做只是能避免主線程被鎖死,而程式出現所謂的假死。
你所說的生成大量內容建議做成模態視窗專門處理,避免造成不好的使用者體驗,盡可能的優化資料生成和處理的模組。
UIWebView是根據所謂的分片載入進行的,其背後的技術手段和 CALayer的某些擴充套件類有關。(曾經閱讀的回憶)
在 iOS 上推薦的 Google Reader 軟體有哪些?
KY Lee Ipad上,mr.reader。介面定製方面。速度快,最好沒有之一。Iphone,reeder。但還是差個縮圖顯示。iReadg要不是ui過分的醜。不然可以替代上面兩個 reeder用來閱讀google reader確實不錯,比較清爽。但同時帶來的問題就是選項較少,並且貌似不能管理rs...
iPhone7建不建議公升iOS11?
已登出 建議公升級,電池不行了就換塊電池 iOS版本手機預裝的那一代往後兩代可以公升,ios版本不建議跨越3代系統,比如7預裝ios10,就可以公升到ios12,再往後就不建議公升了,這個看個人喜好,看中新版本新功能的建議公升到手機卡到不能用,看中系統穩定用的時間長建議留在大版本的最後乙個小版本,比...
普通的 GUI 庫,在非主線程裡操作 UI ,是「必然」會出錯還是「有很大的概率」會出錯?
如果是Windows GDI的GUI,並且合理的設計架構的話 比如當前主線程卡死了,你又開個執行緒專門繪製介面 很大機率不出錯 除此之外,很大機率出錯 但是但是但是,多執行緒寫UI,往往不是因為資源什麼的出不出錯,而在於互動輸入輸出的一致性,前者你硬上鎖的話,除了沒意義和慢,並沒有什麼問題,後者如果...