UIApplicationShortcutIcon(templateImageName:“.namecas from .xcassets”)显示黑色空白图像

时间:2017-05-06 07:57:26

标签: ios iphone swift 3dtouch

我尝试使用我的项目的.xcassets捆绑包中的.png图片来创建一个UIApplicationShortcutIcon,使用init.templateImageName选项,如下所示。

icon = UIApplicationShortcutIcon(templateImageName: "john3")
let type = "com.company.app.sendChatTo"
let subtitle = "Send a chat"
let shortcutItem1 = UIApplicationShortcutItem(type: type, localizedTitle: contactName, localizedSubtitle: subtitle, icon: icon, userInfo: nil)
let shortcutitems = [shortcutItem1]
UIApplication.shared.shortcutItems = shortcutitems  

但它显示黑色空白图像。

enter image description here

然而,它还检测图像的边界大小,它是肖像或风景。但它是黑色的。这是我的形象。

enter image description here

如果我错过了某些内容,请告诉我,这很容易,应该很容易完成,不幸的是,这会造成微不足道的问题。

1 个答案:

答案 0 :(得分:0)

模板图像的处理方式与普通图像不同。

来自UIApplicationShortcutIcon init(templateImageName: String) API reference

  

图标应为方形,单色和35x35点,如这些模板文件所示,如UIKit用户界面目录和iOS人机界面指南中的模板图像所述。

来自UIKit User Interface Catalog guide

  

模板图像

     

在iOS 7中,您可以选择将应用中的任何图片视为模板或模板图像。当您选择将图像视为模板时,系统会忽略图像的颜色信息,并根据图像中的Alpha值创建图像模板(图像中alpha值小于1.0的部分被视为完全透明) 。然后可以使用tintColor重新着色此模板以匹配用户界面的其余部分。

您的应用程序快捷方式图标选项为:

  
      
  • 系统提供的常见类型库中的图标,如UIApplicationShortcutIconType枚举

  • 中所述   
  • 从应用程序包中的自定义模板图像派生的图标,最好是在资产目录中

  •   
  • 表示用户通讯录中联系人的图标,可通过ContactsUI框架访问

  •