日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UIImage使用

發布時間:2025/1/21 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UIImage使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

細講UIImage加載方


前言

關于本地圖片UIImage的加載問題,還是需要注意的。不同的加載處理方式,在效率和性能上還是有差異的。

今天,我們來講講UIImage的加載應該選擇什么樣的API來加載!

兩種API

這兩種API分別是:

  • -imageNamed: 默認加載圖片成功后會內存中緩存圖片,這個方法用一個指定的名字在系統緩存中查找并返回一個圖片對象。如果緩存中沒有找到相應的圖片對象,則從指定地方加載圖片然后緩存對象并返回這個圖片對象。通常是加載bundle中的圖片資源!

  • -initWithContentsOfFile: 僅僅加載圖片而不在內存中緩存下來,那么每次獲取時都會重新去加載。

使用場景

  • -imageNamed: 是讀取到內存后會緩存下來,下次再讀取時直接從緩存中獲取,因此訪問效率要比較高。對于圖片資源比較小,使用比較頻繁的圖片,通常會選擇使用此種方式來加載。當然,若不需要考慮性能時,直接使用此種方式也是可以的。

  • -initWithContentsOfFile: 當圖片資源比較大,或者圖片資源只使用一次就不再使用了,那么使用此種方式是最佳方式。當應用程序需要加載一張比較大的圖片并且是一次性使用的,那么是沒有必要去緩存這個圖片的,用-imageWithContentsOfFile:是最為經濟的方式,這樣不會因為UIImage元素較多情況下,CPU會被逐個分散在不必要的緩存上而浪費過多CPU時間。另外,當我們的圖片不是PNG圖片時,我們通常會選擇此種方式來加載。

大量使用-initWithContentsOfFile:方式來加載圖片,會增加CPU的開銷,所以我們需要根據特定場景慎重選擇圖片加載的方式。即使UIImage較小,但使用UIImage元素較多時,問題會有所凸顯哦!

代碼使用

  • 對于-imageNamed: 這個API的調用就非常簡單了,直接就是:

1

2

3

4

5

6

7

8

9

?

UIImage *image = [UIImage imageNamed:@"logo"];

?

// 在開發中,通常都定義了快捷調用的宏

#define kImgName(name) [UIImage imageNamed:name]

?

// 使用時就更簡化了

UIImage *image = kImgName(@"logo");

?

  • 對于-initWithContentsOfFile:的使用就相對復雜了一點點:

1

2

3

4

5

6

7

8

9

10

11

?

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"logo" ofType:@"png"];

UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath];

?

// 但是在開發中,筆者通常會定義成宏,簡化調用

#define kResourcePath(name, type) ([[NSBundle mainBundle] pathForResource:name ofType:type])

#define kImgFromFile(name, type) [[UIImage alloc] initWithContentsOfFile:kResourcePath(name, type)]

?

// 然后,調用也變得很簡化了~

UIImage *image = kImgFromFile(@"logo", @"png");

?

最后

閱讀到此,是否對UIImage有更深入地了解了?我相信這篇文章能更幫助您更好在地開發中使用圖片加載。本篇文章所有內容不代表全正確,若有錯誤之處,請聯系筆者或者在評論中指出!


轉載于:https://my.oschina.net/u/2603560/blog/639277

總結

以上是生活随笔為你收集整理的UIImage使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。