2015-07-10 42 views
0

我在這裏敲打我的頭。UIKit - 使用Plist來檢索圖像

目標

創建的plist包含圖像鍵。加載和圖像的鍵名 - 在UIKit的

是我迄今爲止嘗試:

的plist樣本:

<plist version="1.0"> 
<dict> 
    <key>frames</key> 
    <dict> 
     <key>flowerpattern_0.jpg</key> 
     <dict> 
      <key>frame</key> 
      <string>{{2,2},{100,100}}</string> 
      <key>offset</key> 
      <string>{0,0}</string> 
      <key>rotated</key> 
      <false/> 
      <key>sourceColorRect</key> 
      <string>{{0,0},{100,100}}</string> 
      <key>sourceSize</key> 
      <string>{100,100}</string> 
     </dict> 


    </dict> 
    <key>metadata</key> 
    <dict> 
     <key>format</key> 
     <integer>2</integer> 
     <key>realTextureFileName</key> 
     <string>flower_pattern_plist.jpg</string> 
     <key>size</key> 
     <string>{1022,104}</string> 
     <key>smartupdate</key> 
     <string>$TexturePacker:SmartUpdate:2e0802c1c0d11825873827deec34bf23:622a62cd100e0ea2e4b15f2b6ecde20c:f7e873e0cfa3c1fd5648760bfa48db16$</string> 
     <key>textureFileName</key> 
     <string>flower_pattern_plist.jpg</string> 
    </dict> 
</dict> 
</plist> 

我多努力,讓出來的圖像:

var myDict : NSDictionary? 
var temp = String() 
if let path = NSBundle.mainBundle().pathForResource("flower_pattern_plist", ofType: "plist") { 
    myDict = NSDictionary(contentsOfFile: path) 
} 
if let dict = myDict { 
    let image: AnyObject? = dict["frames"]! 
    println(image) 
    temp = image!.allKeys[0] as! String 
} 
self.CollageChild.backgroundColor = UIColor(patternImage: UIImage(named: temp)!) 

但到目前爲止它失敗,任何蘇ggestions?它甚至有可能嗎?

回答

1

您的代碼讀取文件錯誤。首先,您可以將frames定義爲數組(不是字典)並使用AnyObject,也可以使用frames["flowerpattern_0"]。我建議陣列選項...

接下來,在的.plist文件中添加fileName關鍵對象:

<key>frames</key> 
<array> 
    <dict> 
     <key>fileName</key> 
     <string>flowerpattern_0.jpg</string> 
     //your other stuff... 
    </dict> 
</array> 

而且讓你的形象是這樣的:

var imageName = image!.valueForKey("fileName") as! String 
var finalImage = UIImage(named : imageName)