iOS開發(fā)retina屏幕下的點(diǎn)與像素關(guān)系詳解
引言
提交app store的時(shí)候 需要一張1024*1024的
如果不設(shè)置這兩種的尺寸啟動(dòng)頁(yè)的話,在4英寸、3.5英寸的設(shè)備上展示不了啟動(dòng)頁(yè),app 的高度也默認(rèn)都是矮的960px.**
注意@3x 提供給開發(fā)的px 為12422208 ,但真實(shí)的px 是10801920,系統(tǒng)API會(huì)自動(dòng)進(jìn)行等比例縮?。?/p>
I iOS中點(diǎn)與像素有什么關(guān)系?
- 點(diǎn)是iOS中標(biāo)準(zhǔn)的坐標(biāo)體系。它就是iOS中的虛擬像素,也被稱為邏輯像素。 在標(biāo)準(zhǔn)設(shè)備中,一個(gè)點(diǎn)就是一個(gè)像素,但是在Ratina屏幕上,一個(gè)點(diǎn)等于2×2個(gè)像素。iOS用點(diǎn)作為屏幕的坐標(biāo)測(cè)算體系就是為了在Retina設(shè)備和普通設(shè)備上能有一致的視覺效果。
- 像素是圖片分辨率的尺寸單位。物理像素坐標(biāo)并不會(huì)用于屏幕布局,但是仍然和圖片有相對(duì)關(guān)系。
retina 屏幕下的點(diǎn)= 像素/2。
II 圖片使用的相關(guān)注意事項(xiàng)
2.1 推薦使用png格式
- png: 常常放置于Assets.xcassets目錄中,作為控件的背景圖片。
壓縮 較高,無(wú)損壓縮,解壓效率高,對(duì)CPU消耗少
- jpg, 常常放置于Supporting Files目錄
1)壓縮比 比較高,通常用于照片、網(wǎng)頁(yè)
2)屬于有損壓縮(噪點(diǎn)noise)
3)解壓時(shí)對(duì)cpu 消耗大--意味著,慢、費(fèi)電
2.2 關(guān)于圖像的實(shí)例化
方式一:有緩存加載圖片
+ (UIImage *)imageNamed:(NSString *)name 系統(tǒng)推薦使用的方法,但圖像實(shí)例化之后的對(duì)象釋放由系統(tǒng)負(fù)責(zé)。 // [arrayImage addObject: [UIImage imageNamed:pictureNamePrefix]];//參數(shù)為圖片名稱,png 格式的可以不加擴(kuò)展名
方式二:無(wú)緩存方式加載圖片(提示、如果放置于Assets.xcassets目錄中的圖片不能使用imageWithContentsOfFile:path進(jìn)行加載;只能使用imageName進(jìn)行加載,即內(nèi)存由系統(tǒng)負(fù)責(zé)了)
//方式二:無(wú)緩存方式加載圖片-指定擴(kuò)展名 // NSArray *arrayPicture = [pictureNamePrefix componentsSeparatedByString:@"."];//從字符中分隔成2個(gè)元素的數(shù)組(圖片名+擴(kuò)展名) // NSString *path = [[NSBundle mainBundle] pathForResource:arrayPicture[0] ofType: arrayPicture[1]];//獲取圖片的全路徑 //方式二:無(wú)緩存方式加載圖片-不指定擴(kuò)展名 NSString *path = [[NSBundle mainBundle] pathForResource:pictureNamePrefix ofType:nil]; [arrayImage addObject:[ UIImage imageWithContentsOfFile:path]];
2.3 動(dòng)畫結(jié)束之后清除幀動(dòng)畫數(shù)組
{ //開始動(dòng)畫 [self.imageList startAnimating]; //釋放資源:動(dòng)畫結(jié)束之后清除幀動(dòng)畫數(shù)組 //nvokes a method of the receiver on the current thread using the default mode after a delay. [self performSelector:@selector(cleanUpAnimationsArray) withObject:nil afterDelay:self.imageList.animationDuration];//@interface NSObject (NSDelayedPerforming) } - (void)cleanUpAnimationsArray{ NSLog(@"%s ",__func__); //動(dòng)畫結(jié)束之后清除幀動(dòng)畫數(shù)組 [self.imageList setAnimationImages:nil]; }
清除內(nèi)存的代碼簡(jiǎn)化
[self.imageList performSelector:@selector(setAnimationImages:) withObject:nil afterDelay:self.imageList.animationDuration];
III 設(shè)置狀態(tài)欄字體顏色
3.1 方式一
在info.plist中,將View controller-based status bar appearance設(shè)為NO.
在app delegate中:[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
3.2 方式二
VC中重寫 -(UIStatusBarStyle)preferredStatusBarStyle
在viewDidload中調(diào)用:[self setNeedsStatusBarAppearanceUpdate];
但是:當(dāng)vc在nav中時(shí),上面方法沒(méi)用,vc中的preferredStatusBarStyle方法根本不用被調(diào)用。
原因是,[self setNeedsStatusBarAppearanceUpdate]發(fā)出后,只會(huì)調(diào)用navigation controller中的preferredStatusBarStyle方法,vc中的preferredStatusBarStyley方法跟本不會(huì)被調(diào)用。
解決方法:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
或者定義一個(gè)nav bar的子類,在這個(gè)子類中重寫preferredStatusBarStyle方法:
see also
CFBundleAllowMixedLocalizations 開啟系統(tǒng)預(yù)定義的本地化功能
<key>CFBundleAllowMixedLocalizations</key> <true/>
以上就是iOS開發(fā)retina屏幕下的點(diǎn)與像素關(guān)系詳解的詳細(xì)內(nèi)容,更多關(guān)于iOS retina點(diǎn)與像素的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
iOS開發(fā)實(shí)現(xiàn)UIImageView的分類
這篇文章主要為大家詳細(xì)介紹了iOS開發(fā)實(shí)現(xiàn)UIImageView的分類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01關(guān)于iOS中屬性變量setter與getter方法的理解
這篇文章主要給大家介紹了關(guān)于iOS中屬性變量setter與getter方法的相關(guān)資料,文章介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06iOS開發(fā)藍(lán)牙技術(shù)應(yīng)用增加無(wú)線連接功能
這篇文章主要為大家介紹了iOS開發(fā)藍(lán)牙技術(shù)應(yīng)用增加無(wú)線連接功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02iOS中的實(shí)時(shí)遠(yuǎn)程配置全紀(jì)錄
這篇文章主要給大家介紹了關(guān)于iOS中實(shí)時(shí)遠(yuǎn)程配置的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01ios 實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式
這篇文章主要介紹了ios實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式,第一種方式使用NSTimer來(lái)實(shí)現(xiàn),第二種方式使用GCD來(lái)實(shí)現(xiàn)。具體內(nèi)容詳情大家參考下本文2017-01-01iOS使用AFN進(jìn)行單圖和多圖上傳的實(shí)例代碼
本篇文章中主要介紹了iOS使用AFN進(jìn)行單圖和多圖上傳的實(shí)例代碼,整理出單張和多張圖片上傳的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04iOS使用UICollectionView實(shí)現(xiàn)橫向滾動(dòng)照片效果
這篇文章主要為大家詳細(xì)介紹了iOS使用UICollectionView實(shí)現(xiàn)橫向滾動(dòng)照片效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05