UIKit - 使用 Plist 检索图像

UIKit - Using Plist to retrive image

我在这里敲脑袋。

目标

正在创建包含图像键的 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)!)

但到目前为止还是失败了,有什么建议吗?有可能吗?

您的代码读取文件有误。首先,您可以将 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)