自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

獲取APP的LaunchImage

移動開發(fā)
啟動圖(LaunchImage)的管理其實在iOS開始中算比較簡單的了,尤其是Xcode引入了xcassets之后,完全是傻瓜式的操作。但是有的時候我們還是需要在Launch Image上做文章。

[[153741]]

啟動圖(LaunchImage)的管理其實在iOS開始中算比較簡單的了,尤其是Xcode引入了xcassets之后,完全是傻瓜式的操作。但是有的時候我們還是需要在Launch Image上做文章。

LaunchImage在APP初始化完之后會立即消失并顯示APP的界面 但是有的時候我們不希望它這么快就消失(比如有的人希望有個過渡效果 有的人希望等某些設(shè)置或者數(shù)據(jù)加載完之后再消失) 這也很簡單 我們只要自己把LaunchImage再顯示出來并且置頂就OK了

比如下面這樣

2015-10-15-tips-access-current-launch-image1.gif

不過我們配置了那么多適用于不同屏幕分辨率的LaunchImage 如何獲取適合于當(dāng)前屏幕分辨率的LaunchImage呢?

普通的辦法是 把所有LaunchImage加入到工程并根據(jù)屏幕分辨率來命名 比如(640_960.png 640_1136.png …) 然后在程序中用代碼拼接出對應(yīng)的文件名 并引用

但是這種辦法比較原始 而且萬一以后蘋果又出了一些其他分辨率的設(shè)備 或者啟動圖發(fā)生變化的時候 又需要人工的修改工程配置 不太好 而且還需要多占一份資源(APP的容量又變大啦)

而stackflow上的Cherpak Evgeny分享了一個更好的辦法 直接讀取NSBundle中的設(shè)置 即可獲取當(dāng)前適用的LaunchImage

我以上面的圖為例寫了個演示代碼

  1. CGSize viewSize = self.window.bounds.size; 
  2. NSString *viewOrientation = @"Portrait";    //橫屏請設(shè)置成 @"Landscape" 
  3. NSString *launchImage = nil; 
  4. NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"]; 
  5. for (NSDictionary* dict in imagesDict) 
  6.     CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]); 
  7.       
  8.     if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]]) 
  9.     { 
  10.         launchImage = dict[@"UILaunchImageName"]; 
  11.     } 
  12. UIImageView *launchView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:launchImage]]; 
  13. launchView.frame = self.window.bounds; 
  14. launchView.contentMode = UIViewContentModeScaleAspectFill; 
  15. [self.window addSubview:launchView]; 
  16. [UIView animateWithDuration:2.0f 
  17.                       delay:0.0f 
  18.                     options:UIViewAnimationOptionBeginFromCurrentState 
  19.                  animations:^{ 
  20.                        
  21.                      launchView.alpha = 0.0f; 
  22.                      launchView.layer.transform = CATransform3DScale(CATransform3DIdentity, 1.21.21); 
  23.                        
  24.                  } 
  25.                  completion:^(BOOL finished) { 
  26.                        
  27.                      [launchView removeFromSuperview]; 
  28.                        
  29.                  }]; 

這樣就能輕松搞定LaunchImage了~

責(zé)任編輯:倪明 來源: 里脊串的開發(fā)隨筆
相關(guān)推薦

2015-04-28 10:38:43

用戶運營

2021-12-26 09:20:41

APP權(quán)限移動應(yīng)用

2011-08-03 17:44:57

iPhone App 文件

2025-02-10 00:55:00

2015-09-15 09:37:59

Appstore曝光位獲取方式

2020-02-07 19:24:47

APP權(quán)限移動應(yīng)用

2014-06-19 13:27:09

2017-02-14 17:00:39

iOSApp內(nèi)存優(yōu)化

2012-11-09 12:02:36

阿里云開發(fā)者大會

2013-10-23 11:34:57

張小龍App

2013-07-01 15:23:44

App

2014-12-18 13:40:16

Web AppHybrid AppNative App

2017-02-24 10:30:51

iOS開源App Store

2013-05-27 11:36:42

山寨App Store潛規(guī)則

2015-10-09 09:11:39

html5原生App區(qū)別

2021-09-23 14:39:04

APP極速版APP軟件

2013-07-30 16:27:20

App Store潛規(guī)則

2013-01-19 09:45:31

App移動開發(fā)趨勢

2016-07-13 14:40:38

云計算

2012-04-29 11:02:05

點贊
收藏

51CTO技術(shù)棧公眾號