【问题标题】:Check if string name matches an asset in images.xcassets检查字符串名称是否与 images.xcassets 中的资产匹配
【发布时间】:2015-04-30 17:22:52
【问题描述】:

我在 Google 上搜索到的所有内容都会找到关于 ALAsset 的答案。

我有一个 images.xcassets 文件夹和一堆资产。

我想根据字符串知道其中是否存在资产。

例如if(images.xcassets.contains("assetName") == true)

你知道如何根据字符串检查资产是否存在吗?

【问题讨论】:

  • 我不确定如何具体执行此操作,但我只会使用您正在检查的资源图像名称创建一个 UIImage,如果 UIImage 为 nil,那么您知道该资源不可用并且可以试试别的。

标签: ios swift xcode6 xcasset


【解决方案1】:

这是检查它的一种方法。

NSString *someString = @"SomeStringFromSomwhere";

 if ([UIImage imageNamed: someString])
 { 
    //the image exists..
 } 
 else
 {
    //no image with that name
 }

【讨论】:

    【解决方案2】:

    检查图像是否存在:Swift 3

    if (UIImage(named: "your_Image_name") != nil) {
      print("Image existing")
    }
    else {
      print("Image is not existing")
    }
    

    【讨论】:

      【解决方案3】:

      只是一个更实际的答案:Swift

      if let myImage = UIImage(named: "assetName") {
        // use your image (myImage), it exists!
      }
      

      【讨论】:

        【解决方案4】:

        我最终得到了两者的某种组合,并将其变成了一个在我的代码中使用的函数。如果提供的图像丢失,我还想返回默认图像。 (Swift 4 版本)

        func loadImage (named: String) -> UIImage {
        
            if let confirmedImage = UIImage(named: named) {
                return confirmedImage
            } else {
                return UIImage(named: "Default_Image.png")
            }
        
        }
        

        然后要将图像加载到按钮之类的东西中,你可以这样做。

        buttonOne.setImage(loadImage(named: "YourImage.png"), for: .normal)
        

        【讨论】:

          【解决方案5】:

          对于 Swift,这是我最终用来分配现有资产或默认系统映像的方法:

          myImageView.image = UIImage(named: "myAssetName") ?? UIImage(systemName: "photo")
          // When former is nil, assigns default system image called "photo"
          

          【讨论】:

            猜你喜欢
            • 2010-12-19
            • 1970-01-01
            • 2010-12-08
            • 1970-01-01
            • 2020-12-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多